|
7 | 7 |
|
8 | 8 | import org.junit.Test;
|
9 | 9 |
|
| 10 | +import com.github.markusbernhardt.xmldoclet.simpledata.Annotation3; |
| 11 | +import com.github.markusbernhardt.xmldoclet.simpledata.AnnotationCascadeChild; |
10 | 12 | import com.github.markusbernhardt.xmldoclet.simpledata.Class1;
|
11 | 13 | import com.github.markusbernhardt.xmldoclet.simpledata.Class2;
|
12 | 14 | import com.github.markusbernhardt.xmldoclet.simpledata.Class3;
|
|
16 | 18 | import com.github.markusbernhardt.xmldoclet.simpledata.Class7;
|
17 | 19 | import com.github.markusbernhardt.xmldoclet.simpledata.Class8;
|
18 | 20 | import com.github.markusbernhardt.xmldoclet.simpledata.Class9;
|
| 21 | +import com.github.markusbernhardt.xmldoclet.simpledata.ClassAnnotationCascade; |
19 | 22 | import com.github.markusbernhardt.xmldoclet.xjc.AnnotationArgument;
|
20 | 23 | import com.github.markusbernhardt.xmldoclet.xjc.AnnotationInstance;
|
21 | 24 | import com.github.markusbernhardt.xmldoclet.xjc.Class;
|
|
33 | 36 | @SuppressWarnings("deprecation")
|
34 | 37 | public class ClassTest extends AbstractTestParent {
|
35 | 38 |
|
| 39 | + /** |
| 40 | + * Testing nested Annotations |
| 41 | + * @see ClassAnnotationCascade |
| 42 | + */ |
| 43 | + @Test |
| 44 | + public void testClassAnnotationCascade() { |
| 45 | + String[] sourceFiles = new String[] { "./src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/ClassAnnotationCascade.java" }; |
| 46 | + Root rootNode = executeJavadoc(null, null, null, sourceFiles, null, new String[] { "-dryrun" }); |
| 47 | + |
| 48 | + Package packageNode = rootNode.getPackage().get(0); |
| 49 | + Class classNode = packageNode.getClazz().get(0); |
| 50 | + |
| 51 | + assertEquals(rootNode.getPackage().size(), 1); |
| 52 | + assertEquals(packageNode.getComment(), null); |
| 53 | + assertEquals(packageNode.getName(), "com.github.markusbernhardt.xmldoclet.simpledata"); |
| 54 | + assertEquals(packageNode.getClazz().size(), 1); |
| 55 | + assertEquals(packageNode.getEnum().size(), 0); |
| 56 | + assertEquals(packageNode.getInterface().size(), 0); |
| 57 | + |
| 58 | + assertEquals("ClassAnnotationCascade", classNode.getComment()); |
| 59 | + assertEquals("ClassAnnotationCascade", classNode.getName()); |
| 60 | + |
| 61 | + assertEquals(ClassAnnotationCascade.class.getName(), classNode.getQualified()); |
| 62 | + |
| 63 | + assertEquals(classNode.getAnnotation().size(), 1); |
| 64 | + AnnotationInstance annotationNode = classNode.getAnnotation().get(0); |
| 65 | + |
| 66 | + assertEquals("AnnotationCascade", annotationNode.getName() ); |
| 67 | + assertEquals(1, annotationNode.getArgument().size()); |
| 68 | + |
| 69 | + AnnotationArgument annotationArgNode = annotationNode.getArgument().get(0); |
| 70 | + |
| 71 | + // Two nested annotations in child attribute |
| 72 | + assertEquals("children", annotationArgNode.getName()); |
| 73 | + assertEquals(0, annotationArgNode.getValue().size()); |
| 74 | + assertEquals(2, annotationArgNode.getAnnotation().size()); |
| 75 | + |
| 76 | + AnnotationInstance annonNodePrimitive = annotationArgNode.getAnnotation().get(0); |
| 77 | + AnnotationInstance annonNodeNested = annotationArgNode.getAnnotation().get(1); |
| 78 | + |
| 79 | + // Equal attribs |
| 80 | + assertEquals(AnnotationCascadeChild.class.getSimpleName(), annonNodePrimitive.getName()); |
| 81 | + assertEquals(AnnotationCascadeChild.class.getSimpleName(), annonNodeNested.getName()); |
| 82 | + assertEquals(AnnotationCascadeChild.class.getName(), annonNodePrimitive.getQualified()); |
| 83 | + assertEquals(AnnotationCascadeChild.class.getName(), annonNodeNested.getQualified()); |
| 84 | + assertEquals(2, annonNodePrimitive.getArgument().size()); |
| 85 | + assertEquals(2, annonNodeNested.getArgument().size()); |
| 86 | + assertEquals("name", annonNodePrimitive.getArgument().get(0).getName()); |
| 87 | + assertEquals("name", annonNodeNested.getArgument().get(0).getName()); |
| 88 | + |
| 89 | + // Primitive |
| 90 | + AnnotationArgument annArgNodePrimitive = annonNodePrimitive.getArgument().get(1); |
| 91 | + assertEquals("dummyData", annArgNodePrimitive.getName()); |
| 92 | + assertEquals("java.lang.String", annArgNodePrimitive.getType().getQualified()); |
| 93 | + assertEquals(0, annArgNodePrimitive.getAnnotation().size()); |
| 94 | + assertEquals(3, annArgNodePrimitive.getValue().size()); |
| 95 | + assertEquals("A", annArgNodePrimitive.getValue().get(0)); |
| 96 | + assertEquals("B", annArgNodePrimitive.getValue().get(1)); |
| 97 | + assertEquals("C", annArgNodePrimitive.getValue().get(2)); |
| 98 | + |
| 99 | + // Nested |
| 100 | + AnnotationArgument annArgNodeNested = annonNodeNested.getArgument().get(1); |
| 101 | + assertEquals("subAnnotations", annArgNodeNested.getName()); |
| 102 | + assertEquals(Annotation3.class.getName(), annArgNodeNested.getType().getQualified()); |
| 103 | + assertEquals(3, annArgNodeNested.getAnnotation().size()); |
| 104 | + assertEquals(0, annArgNodeNested.getValue().size()); |
| 105 | + assertEquals(Annotation3.class.getSimpleName(), annArgNodeNested.getAnnotation().get(0).getName()); |
| 106 | + assertEquals(Annotation3.class.getName(), annArgNodeNested.getAnnotation().get(1).getQualified()); |
| 107 | + assertEquals(1, annArgNodeNested.getAnnotation().get(2).getArgument().size()); |
| 108 | + |
| 109 | + assertEquals("666", annArgNodeNested.getAnnotation().get(2).getArgument().get(0).getValue().get(0)); |
| 110 | + } |
| 111 | + |
| 112 | + |
36 | 113 | /**
|
37 | 114 | * Rigourous Parser :-)
|
38 | 115 | */
|
|
0 commit comments