@Test public void nestedClass() throws Exception { ClassReader classReader = new ClassReader(TestClass.NestedClass.class.getName()); classReader.accept(classAnalyzer, ClassReader.SKIP_CODE | ClassReader.SKIP_DEBUG | ClassReader.SKIP_FRAMES); ImmutableType immutableType = classAnalyzer.getType(); assertThat(immutableType.getFQN(), is(TestClass.class.getName() + "$" + TestClass.NestedClass.class.getSimpleName())); } }
@Test public void innerClass() throws Exception { ClassReader classReader = new ClassReader(TestClass.InnerClass.class.getName()); classReader.accept(classAnalyzer, ClassReader.SKIP_CODE | ClassReader.SKIP_DEBUG | ClassReader.SKIP_FRAMES); ImmutableType immutableType = classAnalyzer.getType(); assertThat(immutableType.getFQN(), is(TestClass.class.getName() + "$" + TestClass.InnerClass.class.getSimpleName())); }
/** * Testing the correct parsing of {@link TestAnnotation}. */ @Test public void theAnnotation() throws IOException { ClassReader classReader = new ClassReader(TestAnnotation.class.getName()); classReader.accept(classAnalyzer, ClassReader.SKIP_CODE | ClassReader.SKIP_DEBUG | ClassReader.SKIP_FRAMES); ImmutableType immutableType = classAnalyzer.getType(); assertThat(immutableType, is(instanceOf(AnnotationType.class))); AnnotationType type = (AnnotationType) immutableType; // name assertThat(type.getFQN(), is(equalTo(TestAnnotation.class.getName()))); assertThat(type.isInitialized(), is(true)); // modifiers assertThat(Modifiers.isPublic(type.getModifiers()), is(true)); // only one hash when analyzed assertThat(type.getHashes(), hasSize(1)); assertThat(type.getHashes(), hasItem(HASH)); // @Retention annotation assertThat(type.getAnnotations(), hasSize(1)); assertThat(type.getAnnotations().iterator().next().getFQN(), is(equalTo(Retention.class.getName()))); // other assertThat(type.getAnnotatedTypes(), is(not(nullValue()))); assertThat(type.getAnnotatedTypes(), is(empty())); assertThat(type.getRealizingClasses(), is(not(nullValue()))); assertThat(type.getRealizingClasses(), is(empty())); }
ClassAnalyzer classAnalyzer = new ClassAnalyzer(hash); classReader.accept(classAnalyzer, ClassReader.SKIP_CODE | ClassReader.SKIP_DEBUG | ClassReader.SKIP_FRAMES); Type type = (Type) classAnalyzer.getType();
classReader.accept(classAnalyzer, ClassReader.SKIP_CODE | ClassReader.SKIP_DEBUG | ClassReader.SKIP_FRAMES); ImmutableType immutableType = classAnalyzer.getType(); assertThat(immutableType, is(instanceOf(InterfaceType.class)));
classReader.accept(classAnalyzer, ClassReader.SKIP_CODE | ClassReader.SKIP_DEBUG | ClassReader.SKIP_FRAMES); ImmutableType immutableType = classAnalyzer.getType(); assertThat(immutableType, is(instanceOf(ClassType.class)));
classReader.accept(classAnalyzer, ClassReader.SKIP_CODE | ClassReader.SKIP_DEBUG | ClassReader.SKIP_FRAMES); ImmutableType immutableType = classAnalyzer.getType(); assertThat(immutableType, is(instanceOf(ClassType.class)));