public static StepMeta fromXml( String metaXml ) { Document doc; try { doc = XMLHandler.loadXMLString( metaXml ); Node stepNode = XMLHandler.getSubNode( doc, "step" ); return new StepMeta( stepNode, Collections.emptyList(), (IMetaStore) null ); } catch ( KettleXMLException | KettlePluginLoaderException e ) { throw new RuntimeException( e ); } }
@Override public Object clone() { StepMeta stepMeta = new StepMeta(); stepMeta.replaceMeta( this ); stepMeta.setObjectId( null ); return stepMeta; }
public SQLStatement getTableDdl( TransMeta transMeta, String stepname, boolean autoSchema, MonetDBBulkLoaderData data, boolean safeMode ) throws KettleException { String name = stepname; // new name might not yet be linked to other steps! StepMeta stepMeta = new StepMeta( BaseMessages.getString( PKG, "MonetDBBulkLoaderDialog.StepMeta.Title" ), name, this ); RowMetaInterface prev = transMeta.getPrevStepFields( stepname ); SQLStatement sql = getSQLStatements( transMeta, stepMeta, prev, autoSchema, data, safeMode ); return sql; }
/** * one 'regular step' to 'step running in 2 copies' */ private void prepareStepMetas_1_x2() { StepMeta dummy1 = new StepMeta( ONE, null ); StepMeta dummy2 = new StepMeta( TWO, null ); dummy2.setCopies( 2 ); chain.add( dummy1 ); chain.add( dummy2 ); for ( StepMeta item : chain ) { item.setStepMetaInterface( new DummyTransMeta() ); } }
/** * many steps copies to one */ private void prepareStepMetas_x2_1() { StepMeta dummy1 = new StepMeta( ONE, null ); StepMeta dummy2 = new StepMeta( TWO, null ); dummy1.setCopies( 2 ); chain.add( dummy1 ); chain.add( dummy2 ); for ( StepMeta item : chain ) { item.setStepMetaInterface( new DummyTransMeta() ); } }
private StepMeta testStep( String name, List<String> infoStepnames, List<String> fieldNames ) throws KettleStepException { StepMetaInterface smi = stepMetaInterfaceWithFields( new DummyTransMeta(), infoStepnames, fieldNames ); return new StepMeta( name, smi ); }
@Test public void testCleanAfterHopToRemove_UnknownStep() { JoinRowsMeta joinRowsMeta = new JoinRowsMeta(); StepMeta stepMeta1 = new StepMeta( "Step1", mock( StepMetaInterface.class ) ); StepMeta stepMeta2 = new StepMeta( "Step2", mock( StepMetaInterface.class ) ); joinRowsMeta.setMainStep( stepMeta1 ); joinRowsMeta.setMainStepname( stepMeta1.getName() ); joinRowsMeta.cleanAfterHopToRemove( stepMeta2 ); // No change to the step should be made assertEquals( stepMeta1, joinRowsMeta.getMainStep() ); assertEquals( stepMeta1.getName(), joinRowsMeta.getMainStepname() ); }
@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" ) ); }
@Test public void testIsAnySelectedStepUsedInTransHopsAnySelectedCase() { StepMeta stepMeta = new StepMeta(); stepMeta.setName( STEP_NAME ); TransHopMeta transHopMeta = new TransHopMeta(); stepMeta.setSelected( true ); List<StepMeta> selectedSteps = asList( new StepMeta(), stepMeta, new StepMeta() ); transHopMeta.setToStep( stepMeta ); transHopMeta.setFromStep( stepMeta ); transMeta.getSteps().addAll( selectedSteps ); transMeta.addTransHop( transHopMeta ); assertTrue( transMeta.isAnySelectedStepUsedInTransHops() ); }
@Test public void prevStepFieldsAreIncludedInGetStepFields() throws KettleStepException { TransMeta transMeta = new TransMeta( new Variables() ); StepMeta prevStep1 = testStep( "prevStep1", emptyList(), asList( "field1", "field2" ) ); StepMeta prevStep2 = testStep( "prevStep2", emptyList(), asList( "field3", "field4", "field5" ) ); StepMeta someStep = testStep( "step", asList( "prevStep1" ), asList( "outputField" ) ); StepMeta after = new StepMeta( "after", new DummyTransMeta() ); wireUpTestTransMeta( transMeta, prevStep1, prevStep2, someStep, after ); RowMetaInterface results = transMeta.getStepFields( someStep, after, mock( ProgressMonitorListener.class ) ); assertThat( 4, equalTo( results.size() ) ); assertThat( new String[] { "field3", "field4", "field5", "outputField" }, equalTo( results.getFieldNames() ) ); }
@Test public void testCleanAfterHopToRemove_ReferredStep() { JoinRowsMeta joinRowsMeta = new JoinRowsMeta(); StepMeta stepMeta1 = new StepMeta( "Step1", mock( StepMetaInterface.class ) ); joinRowsMeta.setMainStep( stepMeta1 ); joinRowsMeta.setMainStepname( stepMeta1.getName() ); joinRowsMeta.cleanAfterHopToRemove( stepMeta1 ); // No change to the step should be made assertNull( joinRowsMeta.getMainStep() ); assertNull( joinRowsMeta.getMainStepname() ); } }
@Test public void testRemoveHopFrom() throws Exception { TransExecutorMeta transExecutorMeta = new TransExecutorMeta(); transExecutorMeta.setExecutionResultTargetStepMeta( new StepMeta() ); transExecutorMeta.setOutputRowsSourceStepMeta( new StepMeta() ); transExecutorMeta.setResultFilesTargetStepMeta( new StepMeta() ); transExecutorMeta.setExecutorsOutputStepMeta( new StepMeta() ); transExecutorMeta.cleanAfterHopFromRemove(); assertNull( transExecutorMeta.getExecutionResultTargetStepMeta() ); assertNull( transExecutorMeta.getOutputRowsSourceStepMeta() ); assertNull( transExecutorMeta.getResultFilesTargetStepMeta() ); assertNull( transExecutorMeta.getExecutorsOutputStepMeta() ); }
@Test public void testRemoveHopFrom() throws Exception { JobExecutorMeta jobExecutorMeta = new JobExecutorMeta(); jobExecutorMeta.setExecutionResultTargetStepMeta( new StepMeta() ); jobExecutorMeta.setResultRowsTargetStepMeta( new StepMeta() ); jobExecutorMeta.setResultFilesTargetStepMeta( new StepMeta() ); jobExecutorMeta.cleanAfterHopFromRemove(); assertNull( jobExecutorMeta.getExecutionResultTargetStepMeta() ); assertNull( jobExecutorMeta.getResultRowsTargetStepMeta() ); assertNull( jobExecutorMeta.getResultFilesTargetStepMeta() ); }
static StepMeta getReadStepMeta( String name ) { DummyTransMeta twoMeta = new DummyTransMeta(); StepMeta two = new StepMeta( registry.getPluginId( StepPluginType.class, twoMeta ), name, twoMeta ); two.setLocation( 250, 50 ); two.setDraw( true ); return two; }
@Test public void testCleanAfterHopToRemove_NullParameter() { JoinRowsMeta joinRowsMeta = new JoinRowsMeta(); StepMeta stepMeta1 = new StepMeta( "Step1", mock( StepMetaInterface.class ) ); joinRowsMeta.setMainStep( stepMeta1 ); joinRowsMeta.setMainStepname( stepMeta1.getName() ); // This call must not throw an exception joinRowsMeta.cleanAfterHopToRemove( null ); // And no change to the step should be made assertEquals( stepMeta1, joinRowsMeta.getMainStep() ); assertEquals( stepMeta1.getName(), joinRowsMeta.getMainStepname() ); }
@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" ) ); }
@Test public void testsearchInfoAndTargetStepsTwice() { StepMetaInterface defStep = new DummyTransMeta(); StepMeta stepMeta = new StepMeta( "id", "default", defStep ); SwitchCaseMeta meta = new SwitchCaseMeta(); meta.allocate(); meta.setDefaultTargetStepname( stepMeta.getName() ); meta.searchInfoAndTargetSteps( Collections.singletonList( stepMeta ) ); // would throw npe meta.searchInfoAndTargetSteps( Collections.singletonList( stepMeta ) ); } }
@Test public void stepMetaXmlConsistency() throws Exception { StepMeta meta = new StepMeta( "id", "name", null ); StepMetaInterface smi = new MissingTrans( meta.getName(), meta.getStepID() ); meta.setStepMetaInterface( smi ); StepMeta fromXml = StepMeta.fromXml( meta.getXML() ); assertThat( meta.getXML(), is( fromXml.getXML() ) ); }
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 ); }