@Override public boolean init( StepMetaInterface smi, StepDataInterface sdi ) { meta = (ConstantMeta) smi; data = (ConstantData) sdi; data.firstRow = true; if ( super.init( smi, sdi ) ) { // Create a row (constants) with all the values in it... List<CheckResultInterface> remarks = new ArrayList<CheckResultInterface>(); // stores the errors... data.constants = buildRow( meta, data, remarks ); if ( remarks.isEmpty() ) { return true; } else { for ( int i = 0; i < remarks.size(); i++ ) { CheckResultInterface cr = remarks.get( i ); logError( cr.getText() ); } } } return false; }
@Override public boolean init( StepMetaInterface stepMetaInterface, StepDataInterface stepDataInterface ) { boolean isInitalized = super.init( stepMetaInterface, stepDataInterface ); BaseSerializingMeta serializingMeta = (BaseSerializingMeta) stepMetaInterface; meta = (MQTTProducerMeta) serializingMeta.withVariables( this ); // handle variable substitution up-front List<CheckResultInterface> remarks = new ArrayList<>(); meta.check( remarks, getTransMeta(), meta.getParentStepMeta(), null, null, null, null, //these parameters are not used inside the method variables, getRepository(), getMetaStore() ); boolean errorsPresent = remarks.stream().filter( result -> result.getType() == CheckResultInterface.TYPE_RESULT_ERROR ) .peek( result -> logError( result.getText() ) ) .count() > 0; return !errorsPresent && isInitalized; }
@Override public boolean init( StepMetaInterface stepMetaInterface, StepDataInterface stepDataInterface ) { boolean isInitalized = super.init( stepMetaInterface, stepDataInterface ); meta = ( (JmsProducerMeta) ( (BaseSerializingMeta) stepMetaInterface ).withVariables( this ) ); List<CheckResultInterface> remarks = new ArrayList<>(); meta.check( remarks, getTransMeta(), meta.getParentStepMeta(), null, null, null, null, //these parameters are not used inside the method variables, getRepository(), getMetaStore() ); boolean errorsPresent = remarks.stream().filter( result -> result.getType() == CheckResultInterface.TYPE_RESULT_ERROR ) .peek( result -> logError( result.getText() ) ) .count() > 0; if ( errorsPresent ) { return false; } return isInitalized; }
@Test public void testCheckGoodPrev() { UnivariateStatsMeta meta = new UnivariateStatsMeta(); RowMetaInterface mockRowMetaInterface = mock( RowMetaInterface.class ); when( mockRowMetaInterface.size() ).thenReturn( 500 ); List<CheckResultInterface> remarks = new ArrayList<CheckResultInterface>(); meta.check( remarks, null, null, mockRowMetaInterface, new String[0], null, null, null, null, null ); assertEquals( 2, remarks.size() ); assertEquals( "Step is connected to previous one, receiving " + 500 + " fields", remarks.get( 0 ).getText() ); }
@Test public void testCheckEmptyPrev() { UnivariateStatsMeta meta = new UnivariateStatsMeta(); RowMetaInterface mockRowMetaInterface = mock( RowMetaInterface.class ); when( mockRowMetaInterface.size() ).thenReturn( 0 ); List<CheckResultInterface> remarks = new ArrayList<CheckResultInterface>(); meta.check( remarks, null, null, mockRowMetaInterface, new String[0], null, null, null, null, null ); assertEquals( 2, remarks.size() ); assertEquals( "Not receiving any fields from previous steps!", remarks.get( 0 ).getText() ); }
@Test public void testCheckWithoutInput() { UnivariateStatsMeta meta = new UnivariateStatsMeta(); List<CheckResultInterface> remarks = new ArrayList<CheckResultInterface>(); meta.check( remarks, null, null, null, new String[0], null, null, null, null, null ); assertEquals( 2, remarks.size() ); assertEquals( "No input received from other steps!", remarks.get( 1 ).getText() ); }
@Test public void testCheckFailInteger() { List<CheckResultInterface> remarks = new ArrayList<>(); StepOption.checkInteger( remarks, stepMeta, space, "IDENTIFIER", "asdf" ); assertEquals( 1, remarks.size() ); assertEquals( remarks.get( 0 ).getText(), getString( StepOption.class, "StepOption.CheckResult.NotAInteger", "IDENTIFIER" ) ); }
@Test public void testCheckNullPrev() { UnivariateStatsMeta meta = new UnivariateStatsMeta(); List<CheckResultInterface> remarks = new ArrayList<CheckResultInterface>(); meta.check( remarks, null, null, null, new String[0], null, null, null, null, null ); assertEquals( 2, remarks.size() ); assertEquals( "Not receiving any fields from previous steps!", remarks.get( 0 ).getText() ); }
@Test public void testCheckFailLong() { List<CheckResultInterface> remarks = new ArrayList<>(); StepOption.checkLong( remarks, stepMeta, space, "IDENTIFIER", "asdf" ); assertEquals( 1, remarks.size() ); assertEquals( remarks.get( 0 ).getText(), getString( StepOption.class, "StepOption.CheckResult.NotAInteger", "IDENTIFIER" ) ); }
@Test public void testCheckFailBoolean() { List<CheckResultInterface> remarks = new ArrayList<>(); StepOption.checkBoolean( remarks, stepMeta, space, "IDENTIFIER", "asdf" ); assertEquals( 1, remarks.size() ); assertEquals( remarks.get( 0 ).getText(), getString( StepOption.class, "StepOption.CheckResult.NotABoolean", "IDENTIFIER" ) ); } }
@Test public void testCheckWithInput() { UnivariateStatsMeta meta = new UnivariateStatsMeta(); List<CheckResultInterface> remarks = new ArrayList<CheckResultInterface>(); meta.check( remarks, null, null, null, new String[1], null, null, null, null, null ); assertEquals( 2, remarks.size() ); assertEquals( "Step is receiving info from other steps.", remarks.get( 1 ).getText() ); }
@Test public void testCheck() throws Exception { WebServiceMeta webServiceMeta = new WebServiceMeta(); TransMeta transMeta = mock( TransMeta.class ); StepMeta stepMeta = mock( StepMeta.class ); RowMetaInterface prev = mock( RowMetaInterface.class ); RowMetaInterface info = mock( RowMetaInterface.class ); Repository rep = mock( Repository.class ); IMetaStore metastore = mock( IMetaStore.class ); String[] input = { "one" }; ArrayList<CheckResultInterface> remarks = new ArrayList<>(); webServiceMeta.check( remarks, transMeta, stepMeta, null, input, null, info, new Variables(), rep, metastore ); assertEquals( 2, remarks.size() ); assertEquals( "Not receiving any fields from previous steps!", remarks.get( 0 ).getText() ); assertEquals( "Step is receiving info from other steps.", remarks.get( 1 ).getText() ); remarks.clear(); webServiceMeta.setInFieldArgumentName( "ifan" ); when( prev.size() ).thenReturn( 2 ); webServiceMeta.check( remarks, transMeta, stepMeta, prev, new String[]{}, null, info, new Variables(), rep, metastore ); assertEquals( 2, remarks.size() ); assertEquals( "Step is connected to previous one, receiving 2 fields", remarks.get( 0 ).getText() ); assertEquals( "No input received from other steps!", remarks.get( 1 ).getText() ); }
@Test public void testCheck() { ZipFileMeta zipFileMeta = new ZipFileMeta(); zipFileMeta.setDefault(); TransMeta transMeta = mock( TransMeta.class ); StepMeta stepInfo = mock( StepMeta.class ); RowMetaInterface prev = mock( RowMetaInterface.class ); Repository repos = mock( Repository.class ); IMetaStore metastore = mock( IMetaStore.class ); RowMetaInterface info = mock( RowMetaInterface.class ); ArrayList<CheckResultInterface> remarks = new ArrayList<>(); zipFileMeta.check( remarks, transMeta, stepInfo, prev, new String[]{"input"}, new String[]{"output"}, info, new Variables(), repos, metastore ); assertEquals( 2, remarks.size() ); assertEquals( "Source Filename field is missing!", remarks.get( 0 ).getText() ); assertEquals( "Step is receiving info from other steps.", remarks.get( 1 ).getText() ); remarks = new ArrayList<>(); zipFileMeta = new ZipFileMeta(); zipFileMeta.setDynamicSourceFileNameField( "sourceFileField" ); zipFileMeta.check( remarks, transMeta, stepInfo, prev, new String[0], new String[]{"output"}, info, new Variables(), repos, metastore ); assertEquals( 2, remarks.size() ); assertEquals( "Target Filename field was specified", remarks.get( 0 ).getText() ); assertEquals( "No input received from other steps!", remarks.get( 1 ).getText() ); }
@Test public void testCheckErrorsOnZeroSizeAndDuration() { meta.setBatchDuration( "0" ); meta.setBatchSize( "0" ); ArrayList<CheckResultInterface> remarks = new ArrayList<>(); meta.check( remarks, null, null, null, null, null, null, new Variables(), null, null ); assertEquals( 1, remarks.size() ); assertEquals( "The \"Number of records\" and \"Duration\" fields can’t both be set to 0. Please set a value of 1 or higher " + "for one of the fields.", remarks.get( 0 ).getText() ); }
@Test public void testCheckErrorsOnNaN() { List<CheckResultInterface> remarks = new ArrayList<>(); meta.setBatchDuration( "blah" ); meta.setBatchSize( "blah" ); meta.check( remarks, null, null, null, null, null, null, new Variables(), null, null ); assertEquals( 2, remarks.size() ); assertEquals( CheckResultInterface.TYPE_RESULT_ERROR, remarks.get( 0 ).getType() ); assertEquals( "The \"Duration\" field is using a non-numeric value. Please set a numeric value.", remarks.get( 0 ).getText() ); assertEquals( CheckResultInterface.TYPE_RESULT_ERROR, remarks.get( 1 ).getType() ); assertEquals( "The \"Number of records\" field is using a non-numeric value. Please set a numeric value.", remarks.get( 1 ).getText() ); }
@Test public void testCheckErrorsOnSubStepName() { List<CheckResultInterface> remarks = new ArrayList<>(); Variables space = new Variables(); meta.setBatchSize( "10" ); meta.setBatchDuration( "10" ); meta.setSubStep( "MissingStep" ); meta.check( remarks, null, null, null, null, null, null, space, null, null ); assertEquals( 1, remarks.size() ); assertEquals( "Unable to complete \"null\". Cannot return fields from \"MissingStep\" because it does not exist in the sub-transformation.", remarks.get( 0 ).getText() ); }
ti.setText( 3, cr.getText() );
@Test public void testCheckErrorsOnVariablesSubstituteError() { List<CheckResultInterface> remarks = new ArrayList<>(); Variables space = new Variables(); space.setVariable( "something", "0" ); meta.setBatchSize( "${something}" ); meta.setBatchDuration( "${something}" ); meta.check( remarks, null, null, null, null, null, null, space, null, null ); assertEquals( 1, remarks.size() ); assertEquals( "The \"Number of records\" and \"Duration\" fields can’t both be set to 0. Please set a value of 1 " + "or higher for one of the fields.", remarks.get( 0 ).getText() ); testRoundTrip( meta ); }
boolean errorsPresent = remarks.stream().filter( result -> result.getType() == CheckResultInterface.TYPE_RESULT_ERROR ) .peek( result -> logError( result.getText() ) ) .count() > 0; if ( errorsPresent ) {