### Question:
DocumentController implements IDocumentController, IDocumentListener, IRequiresMetaverseBuilder { @Override public void removeAnalyzer( IDocumentAnalyzer analyzer ) { if ( documentAnalyzers.contains( analyzer ) ) { try { documentAnalyzers.remove( analyzer ); } catch ( UnsupportedOperationException uoe ) { } } if ( analyzer != null ) { Set<String> types = analyzer.getSupportedTypes(); analyzer.setMetaverseBuilder( this ); if ( types != null ) { for ( String type : types ) { HashSet<IDocumentAnalyzer> analyzerSet = null; if ( analyzerTypeMap.containsKey( type ) ) { analyzerSet = analyzerTypeMap.get( type ); analyzerSet.remove( analyzer ); if ( analyzerSet.size() == 0 ) { analyzerTypeMap.remove( type ); } } } } } } DocumentController();  DocumentController( IMetaverseBuilder metaverseBuilder ); @Override IMetaverseBuilder getMetaverseBuilder(); @Override void setMetaverseBuilder( IMetaverseBuilder metaverseBuilder ); IMetaverseObjectFactory getMetaverseObjectFactory(); void setMetaverseObjectFactory( IMetaverseObjectFactory metaverseObjectFactory ); @Override Graph getGraph(); @Override void setGraph( Graph graph ); @Override List<IDocumentAnalyzer> getAnalyzers(); @Override List<IDocumentAnalyzer> getDocumentAnalyzers( String type ); @Override List<IDocumentAnalyzer> getAnalyzers( Collection<Class<?>> types ); @Override void setDocumentAnalyzers( List<IDocumentAnalyzer> documentAnalyzers ); void setClonableDocumentAnalyzers( List<IDocumentAnalyzer> documentAnalyzers ); @Override void onEvent( IDocumentEvent event ); void addClonableAnalyzer( final IClonableDocumentAnalyzer analyzer ); @Override void addAnalyzer( IDocumentAnalyzer analyzer ); void removeClonableAnalyzer( final IClonableDocumentAnalyzer analyzer ); @Override void removeAnalyzer( IDocumentAnalyzer analyzer ); @Override IMetaverseBuilder addNode( IMetaverseNode iMetaverseNode ); @Override IMetaverseBuilder addLink( IMetaverseLink iMetaverseLink ); @Override IMetaverseBuilder deleteNode( IMetaverseNode iMetaverseNode ); @Override IMetaverseBuilder deleteLink( IMetaverseLink iMetaverseLink ); @Override IMetaverseBuilder updateNode( IMetaverseNode iMetaverseNode ); @Override IMetaverseBuilder updateLinkLabel( IMetaverseLink iMetaverseLink, String newLabel ); @Override IMetaverseBuilder addLink( IMetaverseNode fromNode, String label, IMetaverseNode toNode ); @Override void addLink( Vertex fromVertex, String label, Vertex toVertex );  }### Answer:
@Test public void testRemoveAnalyzer() throws Exception { List<IDocumentAnalyzer> analyzers = docController.getDocumentAnalyzers( "dummy" ); assertEquals( 2, analyzers.size() ); docController.removeAnalyzer( dummyAnalyzer ); analyzers = docController.getDocumentAnalyzers( "dummy" ); assertEquals( 1, analyzers.size() ); }