package com.github.markusbernhardt.xmldoclet; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import org.junit.Test; import com.github.markusbernhardt.xmldoclet.simpledata.Annotation12; import com.github.markusbernhardt.xmldoclet.xjc.AnnotationArgument; import com.github.markusbernhardt.xmldoclet.xjc.AnnotationInstance; import com.github.markusbernhardt.xmldoclet.xjc.Enum; import com.github.markusbernhardt.xmldoclet.xjc.EnumConstant; import com.github.markusbernhardt.xmldoclet.xjc.Package; import com.github.markusbernhardt.xmldoclet.xjc.Root; /** * Unit test group for Enumerations */ public class EnumTest extends AbstractTestParent { /** * Rigourous Parser :-) */ @Test public void testSampledoc() { executeJavadoc(".", new String[] { "./src/test/java" }, null, null, new String[] { "com" }, new String[] { "-dryrun" }); } /** * testing a simple enum */ @Test public void testEnum1() { String[] sourceFiles = new String[] { "./src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Enum1.java" }; Root rootNode = executeJavadoc(null, null, null, sourceFiles, null, new String[] { "-dryrun" }); Package packageNode = rootNode.getPackage().get(0); Enum enumNode = packageNode.getEnum().get(0); assertEquals(rootNode.getPackage().size(), 1); assertNull(packageNode.getComment()); assertEquals(packageNode.getName(), "com.github.markusbernhardt.xmldoclet.simpledata"); assertEquals(packageNode.getAnnotation().size(), 0); assertEquals(packageNode.getEnum().size(), 1); assertEquals(packageNode.getInterface().size(), 0); assertEquals(packageNode.getClazz().size(), 0); assertEquals(enumNode.getName(), "Enum1"); assertEquals(enumNode.getComment(), "Enum1"); assertEquals(enumNode.getQualified(), "com.github.markusbernhardt.xmldoclet.simpledata.Enum1"); assertEquals(enumNode.getConstant().size(), 3); assertEquals(enumNode.getConstant().get(0).getName(), "a"); assertEquals(enumNode.getConstant().get(1).getName(), "b"); assertEquals(enumNode.getConstant().get(2).getName(), "c"); } /** * testing an empty enum */ @Test public void testEnum2() { String[] sourceFiles = new String[] { "./src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Enum2.java" }; Root rootNode = executeJavadoc(null, null, null, sourceFiles, null, new String[] { "-dryrun" }); Package packageNode = rootNode.getPackage().get(0); Enum enumNode = packageNode.getEnum().get(0); assertEquals(enumNode.getName(), "Enum2"); assertEquals(enumNode.getComment(), "Enum2"); assertEquals(enumNode.getQualified(), "com.github.markusbernhardt.xmldoclet.simpledata.Enum2"); assertEquals(enumNode.getConstant().size(), 0); } /** * testing enum comment */ @Test public void testEnum3() { String[] sourceFiles = new String[] { "./src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Enum3.java" }; Root rootNode = executeJavadoc(null, null, null, sourceFiles, null, new String[] { "-dryrun" }); Package packageNode = rootNode.getPackage().get(0); Enum enumNode = packageNode.getEnum().get(0); assertEquals(enumNode.getComment(), "Enum3"); } /** * testing enum field comment */ @Test public void testEnum4() { String[] sourceFiles = new String[] { "./src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Enum4.java" }; Root rootNode = executeJavadoc(null, null, null, sourceFiles, null, new String[] { "-dryrun" }); Package packageNode = rootNode.getPackage().get(0); Enum enumNode = packageNode.getEnum().get(0); EnumConstant enumConstantNode = enumNode.getConstant().get(0); assertEquals(enumConstantNode.getComment(), "field1"); } /** * testing single annotation */ @Test public void testEnum5() { String[] sourceFiles = new String[] { "./src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Enum5.java" }; Root rootNode = executeJavadoc(null, null, null, sourceFiles, null, new String[] { "-dryrun" }); Package packageNode = rootNode.getPackage().get(0); Enum enumNode = packageNode.getEnum().get(0); assertEquals(enumNode.getAnnotation().size(), 1); AnnotationInstance annotationInstanceNode = enumNode.getAnnotation().get(0); assertEquals(annotationInstanceNode.getQualified(), "java.lang.Deprecated"); } /** * testing multiple annotation */ @Test public void testEnum6() { String[] sourceFiles = new String[] { "./src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Enum6.java" }; Root rootNode = executeJavadoc(null, null, null, sourceFiles, null, new String[] { "-dryrun" }); Package packageNode = rootNode.getPackage().get(0); Enum enumNode = packageNode.getEnum().get(0); assertEquals(enumNode.getAnnotation().size(), 2); AnnotationInstance annotationInstanceNode = enumNode.getAnnotation().get(0); assertEquals(annotationInstanceNode.getQualified(), "java.lang.Deprecated"); assertEquals(annotationInstanceNode.getName(), "Deprecated"); assertEquals(annotationInstanceNode.getArgument().size(), 0); annotationInstanceNode = enumNode.getAnnotation().get(1); assertEquals(annotationInstanceNode.getQualified(), Annotation12.class.getName()); assertEquals(annotationInstanceNode.getName(), Annotation12.class.getSimpleName()); assertEquals(annotationInstanceNode.getArgument().size(), 1); AnnotationArgument annotationArgumentNode = annotationInstanceNode.getArgument().get(0); assertEquals(annotationArgumentNode.getName(), "value"); assertEquals(annotationArgumentNode.getValue().get(0), "mister"); } }