Skip to content

Commit

Permalink
[TEST] - Added ExcelInputField testing for coverage
Browse files Browse the repository at this point in the history
  • Loading branch information
mbatchelor committed May 24, 2016
1 parent 5725de9 commit e57915d
Showing 1 changed file with 45 additions and 8 deletions.
Expand Up @@ -26,10 +26,15 @@
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Random;
import java.util.UUID;


import org.apache.commons.lang.builder.EqualsBuilder;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.pentaho.di.core.KettleEnvironment;
import org.pentaho.di.core.exception.KettleException; import org.pentaho.di.core.exception.KettleException;
import org.pentaho.di.core.plugins.PluginRegistry;
import org.pentaho.di.trans.steps.loadsave.LoadSaveTester; import org.pentaho.di.trans.steps.loadsave.LoadSaveTester;
import org.pentaho.di.trans.steps.loadsave.validator.ArrayLoadSaveValidator; import org.pentaho.di.trans.steps.loadsave.validator.ArrayLoadSaveValidator;
import org.pentaho.di.trans.steps.loadsave.validator.FieldLoadSaveValidator; import org.pentaho.di.trans.steps.loadsave.validator.FieldLoadSaveValidator;
Expand All @@ -42,6 +47,8 @@ public class ExcelInputMetaTest {


@Before @Before
public void setUp() throws Exception { public void setUp() throws Exception {
KettleEnvironment.init();
PluginRegistry.init( true );


List<String> attributes = List<String> attributes =
Arrays.asList( "fileName", "fileMask", "excludeFileMask", "fileRequired", "includeSubFolders", "field", Arrays.asList( "fileName", "fileMask", "excludeFileMask", "fileRequired", "includeSubFolders", "field",
Expand Down Expand Up @@ -75,19 +82,20 @@ public void setUp() throws Exception {
} }
}; };
FieldLoadSaveValidator<String[]> stringArrayLoadSaveValidator = FieldLoadSaveValidator<String[]> stringArrayLoadSaveValidator =
new ArrayLoadSaveValidator<String>( new StringLoadSaveValidator(), 1 ); new ArrayLoadSaveValidator<String>( new StringLoadSaveValidator(), 5 );
Map<String, FieldLoadSaveValidator<?>> attrValidatorMap = new HashMap<String, FieldLoadSaveValidator<?>>(); Map<String, FieldLoadSaveValidator<?>> attrValidatorMap = new HashMap<String, FieldLoadSaveValidator<?>>();
attrValidatorMap.put( "fileName", stringArrayLoadSaveValidator ); attrValidatorMap.put( "fileName", stringArrayLoadSaveValidator );
attrValidatorMap.put( "sheetName", stringArrayLoadSaveValidator ); attrValidatorMap.put( "sheetName", stringArrayLoadSaveValidator );
attrValidatorMap.put( "fileMask", stringArrayLoadSaveValidator ); attrValidatorMap.put( "fileMask", stringArrayLoadSaveValidator );
attrValidatorMap.put( "excludeFileMask", stringArrayLoadSaveValidator ); attrValidatorMap.put( "excludeFileMask", stringArrayLoadSaveValidator );
attrValidatorMap.put( "fileRequired", stringArrayLoadSaveValidator ); attrValidatorMap.put( "fileRequired", stringArrayLoadSaveValidator );
attrValidatorMap.put( "includeSubFolders", stringArrayLoadSaveValidator ); attrValidatorMap.put( "includeSubFolders", stringArrayLoadSaveValidator );
attrValidatorMap.put( "field", new ExcelInputFieldFieldLoadSaveValidator() ); attrValidatorMap.put( "field",
new ArrayLoadSaveValidator<ExcelInputField>( new ExcelInputFieldLoadSaveValidator(), 5 ) );
attrValidatorMap.put( "spreadSheetType", new SpreadSheetTypeFieldLoadSaveValidator() ); attrValidatorMap.put( "spreadSheetType", new SpreadSheetTypeFieldLoadSaveValidator() );
Map<String, FieldLoadSaveValidator<?>> typeValidatorMap = new HashMap<String, FieldLoadSaveValidator<?>>(); Map<String, FieldLoadSaveValidator<?>> typeValidatorMap = new HashMap<String, FieldLoadSaveValidator<?>>();
typeValidatorMap.put( int[].class.getCanonicalName(), new PrimitiveIntArrayLoadSaveValidator( typeValidatorMap.put( int[].class.getCanonicalName(), new PrimitiveIntArrayLoadSaveValidator(
new IntLoadSaveValidator(), 1 ) ); new IntLoadSaveValidator(), 5 ) );


loadSaveTester = loadSaveTester =
new LoadSaveTester( ExcelInputMeta.class, attributes, getterMap, setterMap, attrValidatorMap, typeValidatorMap ); new LoadSaveTester( ExcelInputMeta.class, attributes, getterMap, setterMap, attrValidatorMap, typeValidatorMap );
Expand All @@ -98,14 +106,43 @@ public void testSerialization() throws KettleException {
loadSaveTester.testSerialization(); loadSaveTester.testSerialization();
} }


public class ExcelInputFieldFieldLoadSaveValidator implements FieldLoadSaveValidator<ExcelInputField[]> { public class ExcelInputFieldLoadSaveValidator implements FieldLoadSaveValidator<ExcelInputField> {
final Random rand = new Random();


@Override public ExcelInputField[] getTestObject() { @Override
return new ExcelInputField[] { }; public ExcelInputField getTestObject() {
ExcelInputField rtn = new ExcelInputField( );
rtn.setCurrencySymbol( UUID.randomUUID().toString() );
rtn.setDecimalSymbol( UUID.randomUUID().toString() );
rtn.setFormat( UUID.randomUUID().toString() );
rtn.setGroupSymbol( UUID.randomUUID().toString() );
rtn.setName( UUID.randomUUID().toString() );
rtn.setTrimType( rand.nextInt( 4 ) );
rtn.setPrecision( rand.nextInt( 9 ) );
rtn.setRepeated( rand.nextBoolean() );
rtn.setLength( rand.nextInt( 50 ) );
rtn.setType( rand.nextInt( 5 ) + 1 );
return rtn;
} }


@Override public boolean validateTestObject( ExcelInputField[] testObject, Object actual ) { @Override
return true; public boolean validateTestObject( ExcelInputField testObject, Object actual ) {
if ( !( actual instanceof ExcelInputField) ) {
return false;
}
ExcelInputField another = (ExcelInputField) actual;
return new EqualsBuilder()
.append( testObject.getName(), another.getName() )
.append( testObject.getType(), another.getType() )
.append( testObject.getLength(), another.getLength() )
.append( testObject.getFormat(), another.getFormat() )
.append( testObject.getTrimType(), another.getTrimType() )
.append( testObject.getPrecision(), another.getPrecision() )
.append( testObject.getCurrencySymbol(), another.getCurrencySymbol() )
.append( testObject.getDecimalSymbol(), another.getDecimalSymbol() )
.append( testObject.getGroupSymbol(), another.getGroupSymbol() )
.append( testObject.isRepeated(), another.isRepeated() )
.isEquals();
} }
} }


Expand Down

0 comments on commit e57915d

Please sign in to comment.