### Question:
SplitFieldsStepAnalyzer extends StepAnalyzer<FieldSplitterMeta> { @Override public Set<ComponentDerivationRecord> getChangeRecords( FieldSplitterMeta meta ) throws MetaverseAnalyzerException { String originalField = meta.getSplitField(); Set<ComponentDerivationRecord> changeRecords = new HashSet<ComponentDerivationRecord>(); String[] fieldNames = meta.getFieldName(); if ( !Const.isEmpty( fieldNames ) ) { for ( int i = 0; i < meta.getFieldName().length; i++ ) { ComponentDerivationRecord cdr = new ComponentDerivationRecord( originalField, fieldNames[i], ChangeType.DATA ); cdr.addOperation( new Operation( Operation.MAPPING_CATEGORY, ChangeType.DATA, fieldNames[i], "Token " + i + " of split string" ) ); changeRecords.add( cdr ); } } return changeRecords; }  @Override Set<ComponentDerivationRecord> getChangeRecords( FieldSplitterMeta meta ); @Override Set<Class<? extends BaseStepMeta>> getSupportedSteps();  }### Answer:
@Test public void testGetChangeRecords() throws Exception { Set<ComponentDerivationRecord> changeRecords = analyzer.getChangeRecords( meta ); assertEquals( 3, changeRecords.size() ); for ( ComponentDerivationRecord changeRecord : changeRecords ) { assertEquals( "splitField", changeRecord.getOriginalEntityName() ); assertTrue( ArrayUtils.contains( outputFields, changeRecord.getChangedEntityName() ) ); Operations operations = changeRecord.getOperations(); assertEquals( 1, operations.size() ); List<IOperation> dataOperations = operations.get( ChangeType.DATA ); assertEquals( 1, dataOperations.size() ); } }