ClassTypeExtractor { public Iterable<Class<?>> allClasses() { return classes; } ClassTypeExtractor(final Class<?> rootType); Iterable<Class<?>> allClasses(); Iterable<Class<?>> interfaces(); Iterable<Class<?>> allClassesAndInterfaces();  }
@Test public void superClasses_ConcreteMessage_returnsSuperClassTypes() { ClassTypeExtractor sut = new ClassTypeExtractor(ConcreteMessage.class); Iterable<Class<?>> classes = sut.allClasses(); assertThat("Expected list of super classes.", classes, hasItems(ConcreteMessage.class, BaseMessage.class, Object.class)); }