### Question:
FilterRowsStepAnalyzer extends StepAnalyzer<FilterRowsMeta> { @Override protected void customAnalyze( FilterRowsMeta stepMeta, IMetaverseNode stepNode ) { final Condition condition = stepMeta.getCondition(); if ( condition != null ) { String filterCondition = condition.toString(); Operation operation = new Operation( "filter", ChangeType.DATA_FLOW, DATA_FLOW_CONDITION, filterCondition ); ComponentDerivationRecord changeRecord = new ComponentDerivationRecord( stepNode.getName(), ChangeType.DATA_FLOW ); changeRecord.addOperation( operation ); stepNode.setProperty( DictionaryConst.PROPERTY_OPERATIONS, changeRecord.toString() ); } }  @Override Set<Class<? extends BaseStepMeta>> getSupportedSteps(); @Override IClonableStepAnalyzer newInstance(); static final String DATA_FLOW_CONDITION; }### Answer:
@Test public void testCustomAnalyze() throws Exception { analyzer.customAnalyze( meta, node ); verify( node ).setProperty( eq( DictionaryConst.PROPERTY_OPERATIONS ), anyString() ); }
@Test public void testCustomAnalyze_nullCondition() throws Exception { when( meta.getCondition() ).thenReturn( null ); analyzer.customAnalyze( meta, node ); verify( node, never() ).setProperty( eq( DictionaryConst.PROPERTY_OPERATIONS ), anyString() ); }