### Question:
InterfaceReport { public Set<Class<?>> getUnImplementedTests() { final Set<Class<?>> retval = new TreeSet<Class<?>>( CLASS_NAME_COMPARATOR ); final ClassPathFilter filter = new NotClassFilter( new OrClassFilter( ClassPathFilter.ABSTRACT_CLASS, ClassPathFilter.INTERFACE_CLASS ) ); for (final Class<?> clazz : filter.filterClasses( packageClasses )) { LOG.debug( String.format( "checking %s for contract tests", clazz ) ); final Set<Class<?>> interfaces = contractTestMap.getAllInterfaces( clazz ); if (!interfaces.isEmpty()) { final Map<Class<?>, InterfaceInfo> interfaceInfo = getInterfaceInfoMap(); interfaces.retainAll( interfaceInfo.keySet() ); } if (!interfaces.isEmpty()) { if (!contractImplMap.hasTestFor( clazz )) { retval.add( clazz ); } } } return retval; } InterfaceReport(final String[] packages, ClassPathFilter filter, final ClassLoader classLoader); Collection<InterfaceInfo> getInterfaceInfoCollection(); Collection<Class<?>> getPackageClasses(); List<Throwable> getErrors(); Set<Class<?>> getUntestedInterfaces(); Set<Class<?>> getUnImplementedTests(); ClassPathFilter getClassFilter();  }### Answer:
@Test public void testGetUnimplementedTests() { interfaceReport = new InterfaceReport( packages, null, classLoader ); final Set<Class<?>> classes = interfaceReport.getUnImplementedTests(); final Set<String> names = getClassNames( classes ); assertEquals( 3, names.size() ); assertTrue( names.contains( "org.xenei.junit.contract.exampleTests.CImpl3" ) ); assertTrue( names.contains( "org.xenei.junit.contract.exampleTests.EImpl" ) ); assertTrue( names.contains( "org.xenei.junit.contract.exampleTests.FImpl" ) ); }
@Test public void getUnImplementedTests_Filtered() { final ClassPathFilter filter = new NotClassFilter( new OrClassFilter( new NameClassFilter( "org.xenei.junit.contract.exampleTests.CImpl3" ), new NameClassFilter( "org.xenei.junit.contract.exampleTests.DTImplSuite$ForceA" ) ) ); interfaceReport = new InterfaceReport( badPackages, filter, classLoader ); final Set<Class<?>> classes = interfaceReport.getUnImplementedTests(); final Set<String> names = getClassNames( classes ); assertTrue( "Missing org.xenei.junit.contract.exampleTests.EImpl", names.contains( "org.xenei.junit.contract.exampleTests.EImpl" ) ); assertTrue( "Missing org.xenei.junit.contract.exampleTests.FImpl", names.contains( "org.xenei.junit.contract.exampleTests.FImpl" ) ); assertEquals( "Too many classes", 2, names.size() ); }