### Question:
XMLOutputStepAnalyzer extends ExternalResourceStepAnalyzer<XMLOutputMeta> { @Override protected void customAnalyze( XMLOutputMeta meta, IMetaverseNode node ) throws MetaverseAnalyzerException { super.customAnalyze( meta, node ); node.setProperty( "parentnode", meta.getMainElement() ); node.setProperty( "rownode", meta.getRepeatElement() ); }  @Override Set<Class<? extends BaseStepMeta>> getSupportedSteps(); @Override IMetaverseNode createResourceNode( IExternalResourceInfo resource ); @Override String getResourceInputNodeType(); @Override String getResourceOutputNodeType(); @Override boolean isOutput(); @Override boolean isInput(); @Override Set<String> getOutputResourceFields( XMLOutputMeta meta );  }### Answer:
@Test public void testCustomAnalyze() throws Exception { when( meta.getMainElement() ).thenReturn( "main" ); when( meta.getRepeatElement() ).thenReturn( "repeat" ); analyzer.customAnalyze( meta, node ); verify( node ).setProperty( "parentnode", "main" ); verify( node ).setProperty( "rownode", "repeat" ); }