### Question:
TransExecutorStepAnalyzer extends StepAnalyzer<TransExecutorMeta> { @Override protected Map<String, RowMetaInterface> getOutputRowMetaInterfaces( TransExecutorMeta meta ) { Map<String, RowMetaInterface> outputFields = new HashMap<>(); String[] nextStepNames = parentTransMeta.getNextStepNames( parentStepMeta ); for ( String nextStepName : nextStepNames ) { StepMeta step = parentTransMeta.findStep( nextStepName ); ProgressNullMonitorListener progressMonitor = new ProgressNullMonitorListener(); try { RowMetaInterface prevStepFields = parentTransMeta.getPrevStepFields( step, progressMonitor ); outputFields.put( nextStepName, prevStepFields ); progressMonitor.done(); } catch ( KettleStepException e ) { log.warn( "Could not get step fields for " + nextStepName, e ); } } return outputFields; } TransExecutorStepAnalyzer(); void connectToSubTransOutputFields( TransExecutorMeta meta, TransMeta subTransMeta,
                                             IMetaverseNode subTransNode,
                                             IComponentDescriptor descriptor ); void connectToSubTransInputFields( TransMeta subTransMeta,
                                            IMetaverseNode subTransNode,
                                            IComponentDescriptor descriptor ); @Override Set<Class<? extends BaseStepMeta>> getSupportedSteps(); @Override IClonableStepAnalyzer newInstance(); static final String EXECUTION_RESULTS_TARGET; static final String OUTPUT_ROWS_TARGET; static final String RESULT_FILES_TARGET; }### Answer:
@Test public void testGetOutputRowMetaInterfaces() { Map<String, RowMetaInterface> rowMetaInterfaces = spyAnalyzer.getOutputRowMetaInterfaces( meta ); assertTrue( MapUtils.isNotEmpty( rowMetaInterfaces ) ); }