private void wireUpTestTransMeta( TransMeta transMeta, StepMeta toBeAppended1, StepMeta toBeAppended2, StepMeta append, StepMeta after ) { transMeta.addStep( append ); transMeta.addStep( after ); transMeta.addStep( toBeAppended1 ); transMeta.addStep( toBeAppended2 ); transMeta.addTransHop( new TransHopMeta( toBeAppended1, append ) ); transMeta.addTransHop( new TransHopMeta( toBeAppended2, append ) ); transMeta.addTransHop( new TransHopMeta( append, after ) ); }
@Test public void testAddStepWithChangeListenerInterface() { StepMeta stepMeta = mock( StepMeta.class ); StepMetaChangeListenerInterfaceMock metaInterface = mock( StepMetaChangeListenerInterfaceMock.class ); when( stepMeta.getStepMetaInterface() ).thenReturn( metaInterface ); assertEquals( 0, transMeta.steps.size() ); assertEquals( 0, transMeta.stepChangeListeners.size() ); // should not throw exception if there are no steps in step meta transMeta.addStep( 0, stepMeta ); assertEquals( 1, transMeta.steps.size() ); assertEquals( 1, transMeta.stepChangeListeners.size() ); transMeta.addStep( 0, stepMeta ); assertEquals( 2, transMeta.steps.size() ); assertEquals( 2, transMeta.stepChangeListeners.size() ); }
@Test public void simpleConvert() { TransMeta meta = new TransMeta(); meta.setFilename( "fileName" ); meta.addStep( new StepMeta( "stepName", stepMetaInterface ) ); Transformation trans = TransMetaConverter.convert( meta ); assertThat( trans.getId(), is( meta.getFilename() ) ); assertThat( trans.getOperations().size(), is( 1 ) ); assertThat( trans.getOperations().get( 0 ).getId(), is( "stepName" ) ); }
public static final TransMeta generatePreviewTransformation( VariableSpace parent, StepMetaInterface oneMeta, String oneStepname ) { PluginRegistry registry = PluginRegistry.getInstance(); TransMeta previewMeta = new TransMeta( parent ); // The following operation resets the internal variables! // previewMeta.setName( parent == null ? "Preview transformation" : parent.toString() ); // At it to the first step. StepMeta one = new StepMeta( registry.getPluginId( StepPluginType.class, oneMeta ), oneStepname, oneMeta ); one.setLocation( 50, 50 ); one.setDraw( true ); previewMeta.addStep( one ); DummyTransMeta twoMeta = new DummyTransMeta(); StepMeta two = new StepMeta( registry.getPluginId( StepPluginType.class, twoMeta ), "dummy", twoMeta ); two.setLocation( 250, 50 ); two.setDraw( true ); previewMeta.addStep( two ); TransHopMeta hop = new TransHopMeta( one, two ); previewMeta.addTransHop( hop ); return previewMeta; } }
@Test public void transWithHops() { TransMeta meta = new TransMeta(); meta.setFilename( "fileName" ); StepMeta from = new StepMeta( "step1", stepMetaInterface ); meta.addStep( from ); StepMeta to = new StepMeta( "step2", stepMetaInterface ); meta.addStep( to ); meta.addTransHop( new TransHopMeta( from, to ) ); Transformation trans = TransMetaConverter.convert( meta ); assertThat( trans.getId(), is( meta.getFilename() ) ); assertThat( trans.getOperations().size(), is( 2 ) ); assertThat( trans.getHops().size(), is( 1 ) ); assertThat( trans.getHops().get( 0 ).getFrom().getId(), is( from.getName() ) ); assertThat( trans.getHops().get( 0 ).getTo().getId(), is( to.getName() ) ); assertThat( trans.getHops().stream().map( Hop::getType ).collect( Collectors.toList() ), everyItem( is( Hop.TYPE_NORMAL ) ) ); }
@Test public void testMultipleDisabledHops() { TransMeta trans = new TransMeta(); StepMeta input = new StepMeta( "Input", stepMetaInterface ); trans.addStep( input ); StepMeta step1 = new StepMeta( "Step1", stepMetaInterface ); trans.addStep( step1 ); StepMeta step2 = new StepMeta( "Step2", stepMetaInterface ); trans.addStep( step2 ); StepMeta step3 = new StepMeta( "Step3", stepMetaInterface ); trans.addStep( step3 ); TransHopMeta hop1 = new TransHopMeta( input, step1, false ); TransHopMeta hop2 = new TransHopMeta( step1, step2, false ); TransHopMeta hop3 = new TransHopMeta( step2, step3, false ); trans.addTransHop( hop1 ); trans.addTransHop( hop2 ); trans.addTransHop( hop3 ); Transformation transformation = TransMetaConverter.convert( trans ); assertThat( "Trans has steps though all of them should be removed", transformation.getOperations().size(), is( 0 ) ); assertThat( "Trans has hops though all of them should be removed", transformation.getHops().size(), is( 0 ) ); }
@Test public void testResolveStepMetaResources() throws KettleException, MetaStoreException { Variables variables = new Variables(); TransMeta transMeta = spy( new TransMeta() ); transMeta.setParentVariableSpace( variables ); doReturn( transMeta ).when( transMeta ).realClone( false ); TestMetaResolvableResource testMetaResolvableResource = spy( new TestMetaResolvableResource() ); TestMetaResolvableResource testMetaResolvableResourceTwo = spy( new TestMetaResolvableResource() ); StepMeta testMeta = new StepMeta( "TestMeta", testMetaResolvableResource ); StepMeta testMetaTwo = new StepMeta( "TestMeta2", testMetaResolvableResourceTwo ); transMeta.addStep( testMeta ); transMeta.addStep( testMetaTwo ); transMeta.addTransHop( new TransHopMeta( testMeta, testMetaTwo ) ); TransMetaConverter.convert( transMeta ); verify( testMetaResolvableResource ).resolve(); verify( testMetaResolvableResourceTwo ).resolve(); } private static class TestMetaResolvableResource extends BaseStepMeta
@Test public void testCreateMultivalueMap() { StepMeta stepMeta = new StepMeta(); stepMeta.setName( "TestRest" ); TransMeta transMeta = new TransMeta(); transMeta.setName( "TestRest" ); transMeta.addStep( stepMeta ); Rest rest = new Rest( stepMeta, mock( StepDataInterface.class ), 1, transMeta, mock( Trans.class ) ); MultivaluedMapImpl map = rest.createMultivalueMap( "param1", "{a:{[val1]}}" ); String val1 = map.getFirst( "param1" ); assertTrue( val1.contains( "%7D" ) ); }
protected TransMeta createSubTransMeta() { RecordsFromStreamMeta rm = new RecordsFromStreamMeta(); String[] fieldNames = getFieldNames(); int[] empty = new int[ fieldNames.length ]; Arrays.fill( empty, -1 ); rm.setFieldname( fieldNames ); rm.setType( getFieldTypes() ); rm.setLength( empty ); rm.setPrecision( empty ); StepMeta recsFromStream = new StepMeta( "RecordsFromStream", "Get records from stream", rm ); recsFromStream.setLocation( new Point( 100, 100 ) ); recsFromStream.setDraw( true ); TransMeta transMeta = new TransMeta(); transMeta.addStep( recsFromStream ); transMeta.setFilename( "" ); return transMeta; }
public static TransMeta generateTestTransformation( VariableSpace parent, StepMetaInterface oneMeta, String oneStepname, RowMetaInterface injectorRowMeta ) { TransMeta previewMeta = new TransMeta( parent ); // First the injector step... StepMeta zero = getInjectorStepMeta( injectorRowMeta ); previewMeta.addStep( zero ); // Then the middle step to test... // StepMeta one = new StepMeta( registry.getPluginId( StepPluginType.class, oneMeta ), oneStepname, oneMeta ); one.setLocation( 150, 50 ); one.setDraw( true ); previewMeta.addStep( one ); // Then we add the dummy step to read the results from StepMeta two = getReadStepMeta(); previewMeta.addStep( two ); // Add the hops between the 3 steps. TransHopMeta zeroOne = new TransHopMeta( zero, one ); previewMeta.addTransHop( zeroOne ); TransHopMeta oneTwo = new TransHopMeta( one, two ); previewMeta.addTransHop( oneTwo ); return previewMeta; }
@Before public void setUp() throws KettleException { KettleLogStore.setLogChannelInterfaceFactory( logChannelFactory ); when( logChannelFactory.create( any(), any() ) ).thenReturn( logChannel ); StepMeta stepMeta = new StepMeta( "BaseStreamStep", meta ); TransMeta transMeta = new TransMeta(); transMeta.addStep( stepMeta ); Trans trans = new Trans( transMeta ); baseStreamStep = new BaseStreamStep( stepMeta, stepData, 1, transMeta, trans ); baseStreamStep.source = streamSource; baseStreamStep.window = streamWindow; baseStreamStep.setParentVariableSpace( new Variables() ); StepMetaDataCombi stepMetaDataCombi = new StepMetaDataCombi(); stepMetaDataCombi.step = baseStreamStep; stepMetaDataCombi.data = stepData; stepMetaDataCombi.stepMeta = stepMeta; stepMetaDataCombi.meta = meta; trans.prepareExecution( new String[ 0 ] ); trans.getSteps().add( stepMetaDataCombi ); }
@Before public void setUp() { TransMeta transMeta = new TransMeta(); transMeta.setName( "delete1" ); Map<String, String> vars = new HashMap<String, String>(); vars.put( "max.sz", "10" ); transMeta.injectVariables( vars ); umi = new InsertUpdateMeta(); ud = new InsertUpdateData(); PluginRegistry plugReg = PluginRegistry.getInstance(); String deletePid = plugReg.getPluginId( StepPluginType.class, umi ); stepMeta = new StepMeta( deletePid, "delete", umi ); Trans trans = new Trans( transMeta ); transMeta.addStep( stepMeta ); upd = new InsertUpdate( stepMeta, ud, 1, transMeta, trans ); upd.copyVariablesFrom( transMeta ); mockHelper = new StepMockHelper<>( "insertUpdate", InsertUpdateMeta.class, InsertUpdateData.class ); Mockito.when( mockHelper.logChannelInterfaceFactory.create( Mockito.any(), Mockito.any( LoggingObjectInterface.class ) ) ) .thenReturn( mockHelper.logChannelInterface ); Mockito.when( mockHelper.stepMeta.getStepMetaInterface() ).thenReturn( new InsertUpdateMeta() ); }
@Test public void testGetMinimum() { final Point minimalCanvasPoint = new Point( 0, 0 ); //for test goal should content coordinate more than NotePadMetaPoint final Point stepPoint = new Point( 500, 500 ); //empty Trans return 0 coordinate point Point point = transMeta.getMinimum(); assertEquals( minimalCanvasPoint.x, point.x ); assertEquals( minimalCanvasPoint.y, point.y ); //when Trans content Step than trans should return minimal coordinate of step StepMeta stepMeta = mock( StepMeta.class ); when( stepMeta.getLocation() ).thenReturn( stepPoint ); transMeta.addStep( stepMeta ); Point actualStepPoint = transMeta.getMinimum(); assertEquals( stepPoint.x - TransMeta.BORDER_INDENT, actualStepPoint.x ); assertEquals( stepPoint.y - TransMeta.BORDER_INDENT, actualStepPoint.y ); }
@Before public void setup() throws FileSystemException { fs = VFS.getManager(); filesPath = '/' + this.getClass().getPackage().getName().replace( '.', '/' ) + "/files/"; transName = "LoadFileInput"; transMeta = new TransMeta(); transMeta.setName( transName ); trans = new Trans( transMeta ); stepMetaInterface = spy( new LoadFileInputMeta() ); stepInputFiles = new FileInputList(); Mockito.doReturn( stepInputFiles ).when( stepMetaInterface ).getFiles( any( VariableSpace.class ) ); String stepId = PluginRegistry.getInstance().getPluginId( StepPluginType.class, stepMetaInterface ); stepMeta = new StepMeta( stepId, "Load File Input", stepMetaInterface ); transMeta.addStep( stepMeta ); stepDataInterface = new LoadFileInputData(); stepCopyNr = 0; stepLoadFileInput = new LoadFileInput( stepMeta, stepDataInterface, stepCopyNr, transMeta, trans ); assertSame( stepMetaInterface, stepMeta.getStepMetaInterface() ); runtimeSMI = stepMetaInterface; runtimeSDI = runtimeSMI.getStepData(); inputField = new LoadFileInputField(); ((LoadFileInputMeta) runtimeSMI).setInputFields( new LoadFileInputField[] { inputField } ); stepLoadFileInput.init( runtimeSMI, runtimeSDI ); }
private JoinRows getJoinRows() throws Exception { StepMeta stepMeta = new StepMeta(); TransMeta transMeta = new TransMeta(); Trans trans = new Trans( transMeta ); transMeta.clear(); transMeta.addStep( stepMeta ); transMeta.setStep( 0, stepMeta ); stepMeta.setName( "test" ); trans.setLog( mock( LogChannelInterface.class ) ); trans.prepareExecution( null ); trans.startThreads(); return new JoinRows( stepMeta, null, 0, transMeta, trans ); }
@Before public void setUp() { TransMeta transMeta = new TransMeta(); transMeta.setName( "delete1" ); Map<String, String> vars = new HashMap<String, String>(); vars.put( "max.sz", "10" ); transMeta.injectVariables( vars ); dmi = new DeleteMeta(); dd = new DeleteData(); PluginRegistry plugReg = PluginRegistry.getInstance(); String deletePid = plugReg.getPluginId( StepPluginType.class, dmi ); stepMeta = new StepMeta( deletePid, "delete", dmi ); Trans trans = new Trans( transMeta ); transMeta.addStep( stepMeta ); del = new Delete( stepMeta, dd, 1, transMeta, trans ); del.copyVariablesFrom( transMeta ); }
public void dupeStep( TransMeta transMeta, StepMeta stepMeta ) { spoon.getLog().logDebug( toString(), BaseMessages.getString( PKG, "Spoon.Log.DuplicateStep" ) + stepMeta.getName() ); // Duplicate // step: StepMeta stMeta = (StepMeta) stepMeta.clone(); if ( stMeta != null ) { String newname = transMeta.getAlternativeStepname( stepMeta.getName() ); int nr = 2; while ( transMeta.findStep( newname ) != null ) { newname = stepMeta.getName() + " (copy " + nr + ")"; nr++; } stMeta.setName( newname ); // Don't select this new step! stMeta.setSelected( false ); Point loc = stMeta.getLocation(); stMeta.setLocation( loc.x + 20, loc.y + 20 ); transMeta.addStep( stMeta ); spoon.addUndoNew( transMeta, new StepMeta[] { (StepMeta) stMeta.clone() }, new int[] { transMeta .indexOfStep( stMeta ) } ); spoon.refreshTree(); spoon.refreshGraph(); } }
@Before public void setUp() { TransMeta transMeta = new TransMeta(); transMeta.setName( "loader" ); lm = new PGBulkLoaderMeta(); ld = new PGBulkLoaderData(); PluginRegistry plugReg = PluginRegistry.getInstance(); String loaderPid = plugReg.getPluginId( StepPluginType.class, lm ); stepMeta = new StepMeta( loaderPid, "loader", lm ); Trans trans = new Trans( transMeta ); transMeta.addStep( stepMeta ); loader = new PGBulkLoader( stepMeta, ld, 1, transMeta, trans ); }
@Before public void setUp() throws Exception { meta = new MappingInputMeta(); meta.setFieldName( new String[] { "n2", "n4" } ); meta.setFieldType( new int[] { ValueMetaInterface.TYPE_INTEGER, ValueMetaInterface.TYPE_INTEGER } ); meta.setFieldLength( new int[] { 0, 0 } ); meta.setFieldPrecision( new int[] { 0, 0 } ); StepMeta sm = new StepMeta( "MappingInput", "SubTrans", meta ); TransMeta tm = new TransMeta(); tm.addStep( sm ); LoggingObjectInterface loi = new SimpleLoggingObject( "lo", LoggingObjectType.STEP, null ); Trans tr = new Trans( tm, loi ); step = new MappingInput( sm, null, 0, tm, tr ); step.getTrans().setRunning( true ); }
@Test( expected = KettleException.class ) public void failsWhenGivenNonSingleThreadSteps() throws Exception { Meta metaInterface = createMeta(); PluginRegistry plugReg = PluginRegistry.getInstance(); String id = plugReg.getPluginId( StepPluginType.class, metaInterface ); assertNotNull( "pluginId", id ); StepMeta stepMeta = new StepMeta( id, "stepMetrics", metaInterface ); stepMeta.setDraw( true ); TransMeta transMeta = new TransMeta(); transMeta.setName( "failsWhenGivenNonSingleThreadSteps" ); transMeta.addStep( stepMeta ); Trans trans = new Trans( transMeta ); trans.prepareExecution( null ); SingleThreadedTransExecutor executor = new SingleThreadedTransExecutor( trans ); executor.init(); } }