### Question:
GroupByStepAnalyzer extends StepAnalyzer<GroupByMeta> { @Override public Set<ComponentDerivationRecord> getChangeRecords( final GroupByMeta groupByMeta ) throws MetaverseAnalyzerException { Set<ComponentDerivationRecord> changeRecords = new HashSet<>(); for ( int i = 0; i < groupByMeta.getSubjectField().length; i++ ) { ComponentDerivationRecord changeRecord = buildChangeRecord( groupByMeta.getSubjectField()[i], groupByMeta.getAggregateField()[i], groupByMeta.getAggregateType()[i] ); changeRecords.add( changeRecord ); } return changeRecords; }  @Override Set<ComponentDerivationRecord> getChangeRecords( final GroupByMeta groupByMeta ); @Override Set<Class<? extends BaseStepMeta>> getSupportedSteps(); @Override IClonableStepAnalyzer newInstance();  }### Answer:
@Test public void testGetChangeRecords() throws Exception { Set<ComponentDerivationRecord> changeRecords = analyzer.getChangeRecords( meta ); assertEquals( 2, changeRecords.size() ); ComponentDerivationRecord next = changeRecords.iterator().next(); assertTrue( next.getOriginalEntityName().equals( "member" ) || next.getOriginalEntityName().equals( "donation" ) ); if ( next.getOriginalEntityName().equals( "member" ) ) { assertEquals( "memberlist", next.getChangedEntityName() ); } else { assertEquals( "totalcity", next.getChangedEntityName() ); } }