Skip to content

Commit

Permalink
Add unit test (#694)
Browse files Browse the repository at this point in the history
  • Loading branch information
lukehutch committed Nov 11, 2022
1 parent 28ec723 commit 0380d46
Showing 1 changed file with 48 additions and 0 deletions.
48 changes: 48 additions & 0 deletions src/test/java/io/github/classgraph/issues/issue696/Issue696.java
@@ -0,0 +1,48 @@
package io.github.classgraph.issues.issue696;

import static org.assertj.core.api.Assertions.assertThat;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import org.junit.jupiter.api.Test;

import io.github.classgraph.ClassGraph;
import io.github.classgraph.ClassInfo;
import io.github.classgraph.MethodParameterInfo;
import io.github.classgraph.ScanResult;
import io.github.classgraph.issues.issue696.Issue696.BrokenAnnotation.Dynamic;

public class Issue696 {
@Target(ElementType.PARAMETER)
@Retention(RetentionPolicy.RUNTIME)
public static @interface Foo {
}

@Target(ElementType.PARAMETER)
@Retention(RetentionPolicy.RUNTIME)
public static @interface Bar {
}

public static class BrokenAnnotation {
public class Dynamic {
public Dynamic(@Foo String param1, @Bar String param2) {
}
}
}

@Test
void genericSuperclass() {
final ScanResult scanResult = new ClassGraph().acceptPackages(Issue696.class.getPackage().getName())
.enableMethodInfo().enableAnnotationInfo().scan();
final ClassInfo dynamic = scanResult.getClassInfo(Dynamic.class.getName());
final MethodParameterInfo[] paramInfo = dynamic.getConstructorInfo().get(0).getParameterInfo();
// Inner classes have an initial "mandated" param
assertThat(paramInfo.length).isEqualTo(3);
assertThat(paramInfo[0].getAnnotationInfo()).isEmpty();
assertThat(paramInfo[1].getAnnotationInfo().get(0).getName()).isEqualTo(Foo.class.getName());
assertThat(paramInfo[2].getAnnotationInfo().get(0).getName()).isEqualTo(Bar.class.getName());
}
}

0 comments on commit 0380d46

Please sign in to comment.