### Question:
JobEntryAnalyzerProvider extends BaseKettleMetaverseComponent implements IJobEntryAnalyzerProvider { @Override public List<IJobEntryAnalyzer> getAnalyzers() { return jobEntryAnalyzers; }  @Override List<IJobEntryAnalyzer> getAnalyzers(); @Override List<IJobEntryAnalyzer> getAnalyzers( Collection<Class<?>> types ); void setJobEntryAnalyzers( List<IJobEntryAnalyzer> analyzers ); void setClonableJobEntryAnalyzers( List<IJobEntryAnalyzer> analyzers ); @Override void addAnalyzer( IJobEntryAnalyzer analyzer ); void addClonableAnalyzer( IClonableJobEntryAnalyzer analyzer ); @Override void removeAnalyzer( IJobEntryAnalyzer analyzer ); void removeClonableAnalyzer( IClonableJobEntryAnalyzer analyzer );  }### Answer:
@Test public void testGetAnalyzersEmpty() throws Exception { assertNotNull( provider.getAnalyzers() ); assertTrue( provider.getAnalyzers().isEmpty() ); }
@Test public void testGetAnalyzersNonEmpty() throws Exception { assertTrue( provider.getAnalyzers().isEmpty() ); provider.jobEntryAnalyzers = new ArrayList<IJobEntryAnalyzer>() {{ add( mockJobEntryAnalyzer ); }}; assertFalse( provider.getAnalyzers().isEmpty() ); }
@Test public void testGetAnalyzersForClass() throws Exception { Set<IJobEntryAnalyzer> baseJobEntryAnalyzerSet = Sets.newSet( mock( IJobEntryAnalyzer.class ) ); Set<IJobEntryAnalyzer> jobEntryTransAnalyzerSet = Sets.newSet( mock( IJobEntryAnalyzer.class ) ); provider.analyzerTypeMap.put( JobEntryInterface.class, baseJobEntryAnalyzerSet ); provider.analyzerTypeMap.put( JobEntryTrans.class, jobEntryTransAnalyzerSet ); List<IJobEntryAnalyzer> analyzers = provider.getAnalyzers( new ArrayList<Class<?>>() {{ add( JobEntryInterface.class ); add( JobEntryTrans.class ); }} ); assertEquals( analyzers.size(), 2 ); analyzers = provider.getAnalyzers( new HashSet<Class<?>>() {{ add( JobEntryTrans.class ); }} ); assertEquals( analyzers.size(), 1 ); }