### Question:
StreamLookupStepAnalyzer extends StepAnalyzer<StreamLookupMeta> { @Override protected Set<StepField> getUsedFields( StreamLookupMeta meta ) { Set<StepField> usedFields = new HashSet<>(); keyLookups = meta.getKeylookup(); keyStreams = meta.getKeystream(); values = meta.getValue(); String[] prevStepNames = parentTransMeta.getPrevStepNames( getStepName() ); lookupStep = meta.getStepIOMeta().getInfoStreams().get( 0 ).getStepname(); for ( int i = 0; i < keyLookups.length; i++ ) { String leftField = keyStreams[i]; String rightField = keyLookups[i]; usedFields.add( new StepField( prevStepNames[0], leftField ) ); usedFields.add( new StepField( lookupStep, rightField ) ); } for ( String retrieveField : values ) { usedFields.add( new StepField( lookupStep, retrieveField ) ); } return usedFields; }  @Override Set<Class<? extends BaseStepMeta>> getSupportedSteps(); @Override Map<String, RowMetaInterface> getInputFields( StreamLookupMeta meta ); @Override Set<ComponentDerivationRecord> getChangeRecords( StreamLookupMeta meta );  }### Answer:
@Test public void testGetUsedFields() throws Exception { Set<StepField> usedFields = analyzer.getUsedFields( streamLookupMeta ); assertNotNull( usedFields ); assertEquals( streamLookupMeta.getKeystream().length + streamLookupMeta.getKeylookup().length + streamLookupMeta.getValue().length, usedFields.size() ); }