package com.github.markusbernhardt.xmldoclet;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
import com.github.markusbernhardt.xmldoclet.simpledata.Class1;
import com.github.markusbernhardt.xmldoclet.simpledata.Class2;
import com.github.markusbernhardt.xmldoclet.simpledata.Class3;
import com.github.markusbernhardt.xmldoclet.simpledata.Class4;
import com.github.markusbernhardt.xmldoclet.simpledata.Class5;
import com.github.markusbernhardt.xmldoclet.simpledata.Class6;
import com.github.markusbernhardt.xmldoclet.simpledata.Class7;
import com.github.markusbernhardt.xmldoclet.simpledata.Class8;
import com.github.markusbernhardt.xmldoclet.simpledata.Class9;
import com.github.markusbernhardt.xmldoclet.xjc.AnnotationArgument;
import com.github.markusbernhardt.xmldoclet.xjc.AnnotationInstance;
import com.github.markusbernhardt.xmldoclet.xjc.Class;
import com.github.markusbernhardt.xmldoclet.xjc.Constructor;
import com.github.markusbernhardt.xmldoclet.xjc.Field;
import com.github.markusbernhardt.xmldoclet.xjc.Method;
import com.github.markusbernhardt.xmldoclet.xjc.Package;
import com.github.markusbernhardt.xmldoclet.xjc.Root;
import com.github.markusbernhardt.xmldoclet.xjc.TypeInfo;
import com.github.markusbernhardt.xmldoclet.xjc.TypeParameter;
/**
* Unit test group for Classes
*/
@SuppressWarnings("deprecation")
public class ClassTest extends AbstractTestParent {
/**
* Rigourous Parser :-)
*/
@Test
public void testSampledoc() {
executeJavadoc(".", new String[] { "./src/test/java" }, null, null, new String[] { "com" },
new String[] { "-dryrun" });
}
/**
* testing a class with nothing defined EMPIRICAL OBSERVATION: The default
* constructor created by the java compiler is not marked synthetic. um
* what?
*/
@Test
public void testClass1() {
String[] sourceFiles = new String[] { "./src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Class1.java" };
Root rootNode = executeJavadoc(null, null, null, sourceFiles, null, new String[] { "-dryrun" });
Package packageNode = rootNode.getPackage().get(0);
Class classNode = packageNode.getClazz().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(), 0);
assertEquals(packageNode.getInterface().size(), 0);
assertEquals(packageNode.getClazz().size(), 1);
assertEquals(classNode.getComment(), "Class1");
assertEquals(classNode.getName(), Class1.class.getSimpleName());
assertEquals(classNode.getQualified(), Class1.class.getName());
assertEquals(classNode.getScope(), "public");
assertEquals(classNode.getConstructor().size(), 1);
assertEquals(classNode.getField().size(), 0);
assertEquals(classNode.getMethod().size(), 0);
assertEquals(classNode.getAnnotation().size(), 0);
assertEquals(classNode.getInterface().size(), 0);
assertEquals(classNode.getClazz().getQualified(), Object.class.getName());
assertFalse(classNode.isAbstract());
assertFalse(classNode.isExternalizable());
assertTrue(classNode.isIncluded());
assertFalse(classNode.isSerializable());
assertFalse(classNode.isException());
assertFalse(classNode.isError());
assertEquals(classNode.getGeneric().size(), 0);
}
/**
* testing a class with 1 constructor
*/
@Test
public void testClass2() {
String[] sourceFiles = new String[] { "./src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Class2.java" };
Root rootNode = executeJavadoc(null, null, null, sourceFiles, null, new String[] { "-dryrun" });
Package packageNode = rootNode.getPackage().get(0);
Class classNode = packageNode.getClazz().get(0);
Constructor constructor = classNode.getConstructor().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(), 0);
assertEquals(packageNode.getInterface().size(), 0);
assertEquals(packageNode.getClazz().size(), 1);
assertEquals(classNode.getComment(), "Class2");
assertEquals(classNode.getConstructor().size(), 1);
assertEquals(classNode.getName(), Class2.class.getSimpleName());
assertEquals(classNode.getQualified(), Class2.class.getName());
assertEquals(classNode.getScope(), "public");
assertEquals(classNode.getField().size(), 0);
assertEquals(classNode.getMethod().size(), 0);
assertEquals(classNode.getAnnotation().size(), 0);
assertEquals(classNode.getInterface().size(), 0);
assertEquals(classNode.getClazz().getQualified(), Object.class.getName());
assertFalse(classNode.isAbstract());
assertFalse(classNode.isExternalizable());
assertTrue(classNode.isIncluded());
assertFalse(classNode.isSerializable());
assertFalse(classNode.isException());
assertFalse(classNode.isError());
assertEquals(classNode.getGeneric().size(), 0);
assertEquals(constructor.getComment(), "Constructor1");
assertEquals(constructor.getName(), "Class2");
assertEquals(constructor.getParameter().size(), 0);
assertEquals(constructor.getAnnotation().size(), 0);
}
/**
* testing a class with 1 method
*/
@Test
public void testClass3() {
String[] sourceFiles = new String[] { "./src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Class3.java" };
Root rootNode = executeJavadoc(null, null, null, sourceFiles, null, new String[] { "-dryrun" });
Package packageNode = rootNode.getPackage().get(0);
Class classNode = packageNode.getClazz().get(0);
Method method = classNode.getMethod().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(), 0);
assertEquals(packageNode.getInterface().size(), 0);
assertEquals(packageNode.getClazz().size(), 1);
assertEquals(classNode.getComment(), "Class3");
assertEquals(classNode.getConstructor().size(), 1);
assertEquals(classNode.getName(), Class3.class.getSimpleName());
assertEquals(classNode.getQualified(), Class3.class.getName());
assertEquals(classNode.getScope(), "public");
assertEquals(classNode.getMethod().size(), 1);
assertEquals(classNode.getField().size(), 0);
assertEquals(classNode.getAnnotation().size(), 0);
assertEquals(classNode.getInterface().size(), 0);
assertEquals(classNode.getClazz().getQualified(), Object.class.getName());
assertFalse(classNode.isAbstract());
assertFalse(classNode.isExternalizable());
assertTrue(classNode.isIncluded());
assertFalse(classNode.isSerializable());
assertFalse(classNode.isException());
assertFalse(classNode.isError());
assertEquals(classNode.getGeneric().size(), 0);
assertEquals(method.getComment(), "method1");
assertEquals(method.getName(), "method1");
assertEquals(method.getSignature(), "()");
assertFalse(method.isFinal());
assertFalse(method.isNative());
assertFalse(method.isStatic());
assertFalse(method.isSynchronized());
assertFalse(method.isVarArgs());
assertEquals(method.getQualified(), "com.github.markusbernhardt.xmldoclet.simpledata.Class3.method1");
assertEquals(method.getScope(), "public");
assertEquals(method.getAnnotation().size(), 0);
assertEquals(method.getParameter().size(), 0);
assertEquals(method.getException().size(), 0);
TypeInfo returnNode = method.getReturn();
assertEquals(returnNode.getQualified(), "int");
assertNull(returnNode.getDimension());
assertEquals(returnNode.getGeneric().size(), 0);
assertNull(returnNode.getWildcard());
}
/**
* testing a class with 1 field
*/
@Test
public void testClass4() {
String[] sourceFiles = new String[] { "./src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Class4.java" };
Root rootNode = executeJavadoc(null, null, null, sourceFiles, null, new String[] { "-dryrun" });
Package packageNode = rootNode.getPackage().get(0);
Class classNode = packageNode.getClazz().get(0);
Field field = classNode.getField().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(), 0);
assertEquals(packageNode.getInterface().size(), 0);
assertEquals(packageNode.getClazz().size(), 1);
assertEquals(classNode.getComment(), "Class4");
assertEquals(classNode.getConstructor().size(), 1);
assertEquals(classNode.getName(), Class4.class.getSimpleName());
assertEquals(classNode.getQualified(), Class4.class.getName());
assertEquals(classNode.getScope(), "public");
assertEquals(classNode.getField().size(), 1);
assertEquals(classNode.getMethod().size(), 0);
assertEquals(classNode.getAnnotation().size(), 0);
assertEquals(classNode.getInterface().size(), 0);
assertEquals(classNode.getClazz().getQualified(), Object.class.getName());
assertFalse(classNode.isAbstract());
assertFalse(classNode.isExternalizable());
assertTrue(classNode.isIncluded());
assertFalse(classNode.isSerializable());
assertFalse(classNode.isException());
assertFalse(classNode.isError());
assertEquals(classNode.getGeneric().size(), 0);
// test field
assertEquals(field.getComment(), "field1");
assertEquals(field.getName(), "field1");
assertEquals(field.getScope(), "public");
assertEquals(field.getType().getQualified(), "int");
assertNull(field.getType().getDimension());
assertEquals(field.getType().getGeneric().size(), 0);
assertNull(field.getType().getWildcard());
assertFalse(field.isStatic());
assertFalse(field.isTransient());
assertFalse(field.isVolatile());
assertFalse(field.isFinal());
assertNull(field.getConstant());
assertEquals(field.getAnnotation().size(), 0);
}
/**
* testing a class that extends another class with 1 method
*/
@Test
public void testClass5() {
String[] sourceFiles = new String[] {
"./src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Class5.java",
"./src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Class3.java" };
Root rootNode = executeJavadoc(null, null, null, sourceFiles, null, new String[] { "-dryrun" });
Package packageNode = rootNode.getPackage().get(0);
Class classNode = packageNode.getClazz().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(), 0);
assertEquals(packageNode.getInterface().size(), 0);
assertEquals(packageNode.getClazz().size(), 2);
assertEquals(classNode.getComment(), "Class5");
assertEquals(classNode.getConstructor().size(), 1);
assertEquals(classNode.getName(), Class5.class.getSimpleName());
assertEquals(classNode.getQualified(), Class5.class.getName());
assertEquals(classNode.getScope(), "public");
assertEquals(classNode.getMethod().size(), 0);
assertEquals(classNode.getField().size(), 0);
assertEquals(classNode.getAnnotation().size(), 0);
assertEquals(classNode.getInterface().size(), 0);
assertEquals(classNode.getClazz().getQualified(), "com.github.markusbernhardt.xmldoclet.simpledata.Class3");
assertFalse(classNode.isAbstract());
assertFalse(classNode.isExternalizable());
assertTrue(classNode.isIncluded());
assertFalse(classNode.isSerializable());
assertFalse(classNode.isException());
assertFalse(classNode.isError());
assertEquals(classNode.getGeneric().size(), 0);
}
/**
* testing a class that implements one interface
*/
@Test
public void testClass6() {
String[] sourceFiles = new String[] { "./src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Class6.java" };
Root rootNode = executeJavadoc(null, null, null, sourceFiles, null, new String[] { "-dryrun" });
Package packageNode = rootNode.getPackage().get(0);
Class classNode = packageNode.getClazz().get(0);
TypeInfo interfaceNode = classNode.getInterface().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(), 0);
assertEquals(packageNode.getInterface().size(), 0);
assertEquals(packageNode.getClazz().size(), 1);
assertEquals(classNode.getComment(), "Class6");
assertEquals(classNode.getConstructor().size(), 1);
assertEquals(classNode.getName(), Class6.class.getSimpleName());
assertEquals(classNode.getQualified(), Class6.class.getName());
assertEquals(classNode.getScope(), "public");
assertEquals(classNode.getMethod().size(), 0);
assertEquals(classNode.getField().size(), 0);
assertEquals(classNode.getAnnotation().size(), 1);
assertEquals(classNode.getInterface().size(), 1);
assertEquals(classNode.getClazz().getQualified(), Object.class.getName());
assertFalse(classNode.isAbstract());
assertFalse(classNode.isExternalizable());
assertTrue(classNode.isIncluded());
assertFalse(classNode.isException());
assertFalse(classNode.isError());
assertEquals(classNode.getGeneric().size(), 0);
// the particular interface chosen for this test also will change this
// flag to true!
assertTrue(classNode.isSerializable());
// verify interface
assertEquals(interfaceNode.getQualified(), java.io.Serializable.class.getName());
}
/**
* testing one annotation instance on the class
*/
@Test
public void testClass7() {
String[] sourceFiles = new String[] { "./src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Class7.java" };
Root rootNode = executeJavadoc(null, null, null, sourceFiles, null, new String[] { "-dryrun" });
Package packageNode = rootNode.getPackage().get(0);
Class classNode = packageNode.getClazz().get(0);
AnnotationInstance annotationNode = classNode.getAnnotation().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(), 0);
assertEquals(packageNode.getInterface().size(), 0);
assertEquals(packageNode.getClazz().size(), 1);
assertEquals(classNode.getComment(), "Class7");
assertEquals(classNode.getConstructor().size(), 1);
assertEquals(classNode.getName(), Class7.class.getSimpleName());
assertEquals(classNode.getQualified(), Class7.class.getName());
assertEquals(classNode.getScope(), "public");
assertEquals(classNode.getMethod().size(), 0);
assertEquals(classNode.getField().size(), 0);
assertEquals(classNode.getAnnotation().size(), 1);
assertEquals(classNode.getInterface().size(), 0);
assertEquals(classNode.getClazz().getQualified(), Object.class.getName());
assertFalse(classNode.isAbstract());
assertFalse(classNode.isExternalizable());
assertTrue(classNode.isIncluded());
assertFalse(classNode.isSerializable());
assertFalse(classNode.isException());
assertFalse(classNode.isError());
assertEquals(classNode.getGeneric().size(), 0);
// test annotation 'deprecated' on class
assertEquals(annotationNode.getQualified(), "java.lang.Deprecated");
assertEquals(annotationNode.getName(), "Deprecated");
assertEquals(annotationNode.getArgument().size(), 0);
}
/**
* testing abstract keyword on class
*/
@Test
public void testClass8() {
String[] sourceFiles = new String[] { "./src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Class8.java" };
Root rootNode = executeJavadoc(null, null, null, sourceFiles, null, new String[] { "-dryrun" });
Package packageNode = rootNode.getPackage().get(0);
Class classNode = packageNode.getClazz().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(), 0);
assertEquals(packageNode.getInterface().size(), 0);
assertEquals(packageNode.getClazz().size(), 1);
assertEquals(classNode.getComment(), "Class8");
assertEquals(classNode.getConstructor().size(), 1);
assertEquals(classNode.getName(), Class8.class.getSimpleName());
assertEquals(classNode.getQualified(), Class8.class.getName());
assertEquals(classNode.getScope(), "public");
assertEquals(classNode.getMethod().size(), 0);
assertEquals(classNode.getField().size(), 0);
assertEquals(classNode.getAnnotation().size(), 0);
assertEquals(classNode.getInterface().size(), 0);
assertEquals(classNode.getClazz().getQualified(), Object.class.getName());
assertTrue(classNode.isAbstract());
assertFalse(classNode.isExternalizable());
assertTrue(classNode.isIncluded());
assertFalse(classNode.isSerializable());
assertFalse(classNode.isException());
assertFalse(classNode.isError());
assertEquals(classNode.getGeneric().size(), 0);
}
/**
* testing java.io.Externalizable interface on class
*/
@Test
public void testClass9() {
String[] sourceFiles = new String[] { "./src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Class9.java" };
Root rootNode = executeJavadoc(null, null, null, sourceFiles, null, new String[] { "-dryrun" });
Package packageNode = rootNode.getPackage().get(0);
Class classNode = packageNode.getClazz().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(), 0);
assertEquals(packageNode.getInterface().size(), 0);
assertEquals(packageNode.getClazz().size(), 1);
assertEquals(classNode.getComment(), "Class9");
assertEquals(classNode.getConstructor().size(), 1);
assertEquals(classNode.getName(), Class9.class.getSimpleName());
assertEquals(classNode.getQualified(), Class9.class.getName());
assertEquals(classNode.getScope(), "public");
assertEquals(classNode.getMethod().size(), 2);
assertEquals(classNode.getField().size(), 0);
assertEquals(classNode.getAnnotation().size(), 0);
assertEquals(classNode.getInterface().size(), 1);
assertEquals(classNode.getClazz().getQualified(), Object.class.getName());
assertFalse(classNode.isAbstract());
assertTrue(classNode.isExternalizable());
assertTrue(classNode.isIncluded());
assertTrue(classNode.isSerializable());
assertFalse(classNode.isException());
assertFalse(classNode.isError());
assertEquals(classNode.getGeneric().size(), 0);
}
/**
* testing difference of scope modifier on class
*/
@Test
public void testClass10() {
String[] sourceFiles = new String[] { "./src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Class10.java" };
Root rootNode = executeJavadoc(null, null, null, sourceFiles, null, new String[] { "-dryrun" });
Package packageNode = rootNode.getPackage().get(0);
Class classNode = packageNode.getClazz().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(), 0);
assertEquals(packageNode.getInterface().size(), 0);
assertEquals(packageNode.getClazz().size(), 1);
assertEquals(classNode.getComment(), "Class10");
assertEquals(classNode.getConstructor().size(), 1);
assertEquals(classNode.getName(), "Class10");
assertEquals(classNode.getQualified(), "com.github.markusbernhardt.xmldoclet.simpledata.Class10");
assertEquals(classNode.getScope(), "");
assertEquals(classNode.getMethod().size(), 0);
assertEquals(classNode.getField().size(), 0);
assertEquals(classNode.getAnnotation().size(), 0);
assertEquals(classNode.getInterface().size(), 0);
assertEquals(classNode.getClazz().getQualified(), Object.class.getName());
assertFalse(classNode.isAbstract());
assertFalse(classNode.isExternalizable());
assertTrue(classNode.isIncluded());
assertFalse(classNode.isSerializable());
assertFalse(classNode.isException());
assertFalse(classNode.isError());
assertEquals(classNode.getGeneric().size(), 0);
}
/**
* testing if isException is populated correctly
*/
@Test
public void testClass11() {
String[] sourceFiles = new String[] { "./src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Class11.java" };
Root rootNode = executeJavadoc(null, null, null, sourceFiles, null, new String[] { "-dryrun" });
Package packageNode = rootNode.getPackage().get(0);
Class classNode = packageNode.getClazz().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(), 0);
assertEquals(packageNode.getInterface().size(), 0);
assertEquals(packageNode.getClazz().size(), 1);
assertEquals(classNode.getComment(), "Class11");
assertEquals(classNode.getConstructor().size(), 1);
assertEquals(classNode.getName(), "Class11");
assertEquals(classNode.getQualified(), "com.github.markusbernhardt.xmldoclet.simpledata.Class11");
assertEquals(classNode.getScope(), "public");
assertEquals(classNode.getMethod().size(), 0);
assertEquals(classNode.getField().size(), 0);
assertEquals(classNode.getAnnotation().size(), 1);
assertEquals(classNode.getInterface().size(), 0);
assertEquals(classNode.getClazz().getQualified(), java.lang.Exception.class.getName());
assertFalse(classNode.isAbstract());
assertFalse(classNode.isExternalizable());
assertTrue(classNode.isIncluded());
assertTrue(classNode.isSerializable());
assertTrue(classNode.isException());
assertFalse(classNode.isError());
assertEquals(classNode.getGeneric().size(), 0);
}
/**
* testing if isError is populated correctly
*/
@Test
public void testClass12() {
String[] sourceFiles = new String[] { "./src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Class12.java" };
Root rootNode = executeJavadoc(null, null, null, sourceFiles, null, new String[] { "-dryrun" });
Package packageNode = rootNode.getPackage().get(0);
Class classNode = packageNode.getClazz().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(), 0);
assertEquals(packageNode.getInterface().size(), 0);
assertEquals(packageNode.getClazz().size(), 1);
assertEquals(classNode.getComment(), "Class12");
assertEquals(classNode.getConstructor().size(), 1);
assertEquals(classNode.getName(), "Class12");
assertEquals(classNode.getQualified(), "com.github.markusbernhardt.xmldoclet.simpledata.Class12");
assertEquals(classNode.getScope(), "public");
assertEquals(classNode.getMethod().size(), 0);
assertEquals(classNode.getField().size(), 0);
assertEquals(classNode.getAnnotation().size(), 1);
assertEquals(classNode.getInterface().size(), 0);
assertEquals(classNode.getClazz().getQualified(), java.lang.Error.class.getName());
assertFalse(classNode.isAbstract());
assertFalse(classNode.isExternalizable());
assertTrue(classNode.isIncluded());
assertTrue(classNode.isSerializable());
assertFalse(classNode.isException());
assertTrue(classNode.isError());
assertEquals(classNode.getGeneric().size(), 0);
}
/**
* testing if type variables can be determined
*/
@Test
public void testClass13() {
String[] sourceFiles = new String[] { "./src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Class13.java" };
Root rootNode = executeJavadoc(null, null, null, sourceFiles, null, new String[] { "-dryrun" });
Package packageNode = rootNode.getPackage().get(0);
Class classNode = packageNode.getClazz().get(0);
TypeParameter typeParameter = classNode.getGeneric().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(), 0);
assertEquals(packageNode.getInterface().size(), 0);
assertEquals(packageNode.getClazz().size(), 1);
assertEquals(classNode.getComment(), "Class13");
assertEquals(classNode.getConstructor().size(), 1);
assertEquals(classNode.getName(), "Class13");
assertEquals(classNode.getQualified(), "com.github.markusbernhardt.xmldoclet.simpledata.Class13");
assertEquals(classNode.getScope(), "public");
assertEquals(classNode.getGeneric().size(), 1);
assertEquals(classNode.getMethod().size(), 0);
assertEquals(classNode.getField().size(), 0);
assertEquals(classNode.getAnnotation().size(), 0);
assertEquals(classNode.getInterface().size(), 0);
assertEquals(classNode.getClazz().getQualified(), Object.class.getName());
assertFalse(classNode.isAbstract());
assertFalse(classNode.isExternalizable());
assertTrue(classNode.isIncluded());
assertFalse(classNode.isSerializable());
assertFalse(classNode.isException());
assertFalse(classNode.isError());
// check the 'fun' type var
assertEquals(typeParameter.getName(), "Fun");
assertEquals(typeParameter.getBound().size(), 0);
}
/**
* testing if a single bounds can be determined
*/
@Test
public void testClass14() {
String[] sourceFiles = new String[] { "./src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Class14.java" };
Root rootNode = executeJavadoc(null, null, null, sourceFiles, null, new String[] { "-dryrun" });
Package packageNode = rootNode.getPackage().get(0);
Class classNode = packageNode.getClazz().get(0);
TypeParameter typeParameter = classNode.getGeneric().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(), 0);
assertEquals(packageNode.getInterface().size(), 0);
assertEquals(packageNode.getClazz().size(), 1);
assertEquals(classNode.getComment(), "Class14");
assertEquals(classNode.getConstructor().size(), 1);
assertEquals(classNode.getName(), "Class14");
assertEquals(classNode.getQualified(), "com.github.markusbernhardt.xmldoclet.simpledata.Class14");
assertEquals(classNode.getScope(), "public");
assertEquals(classNode.getGeneric().size(), 1);
assertEquals(classNode.getMethod().size(), 0);
assertEquals(classNode.getField().size(), 0);
assertEquals(classNode.getAnnotation().size(), 0);
assertEquals(classNode.getInterface().size(), 0);
assertEquals(classNode.getClazz().getQualified(), Object.class.getName());
assertFalse(classNode.isAbstract());
assertFalse(classNode.isExternalizable());
assertTrue(classNode.isIncluded());
assertFalse(classNode.isSerializable());
assertFalse(classNode.isException());
assertFalse(classNode.isError());
// check the 'fun' type var
assertEquals(typeParameter.getName(), "Fun");
assertEquals(typeParameter.getBound().size(), 1);
assertEquals(typeParameter.getBound().get(0), Number.class.getName());
}
/**
* testing if a multiple bounds can be determined
*/
@Test
public void testClass15() {
String[] sourceFiles = new String[] { "./src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Class15.java" };
Root rootNode = executeJavadoc(null, null, null, sourceFiles, null, new String[] { "-dryrun" });
Package packageNode = rootNode.getPackage().get(0);
Class classNode = packageNode.getClazz().get(0);
TypeParameter typeParameter = classNode.getGeneric().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(), 0);
assertEquals(packageNode.getInterface().size(), 0);
assertEquals(packageNode.getClazz().size(), 1);
assertEquals(classNode.getComment(), "Class15");
assertEquals(classNode.getConstructor().size(), 1);
assertEquals(classNode.getName(), "Class15");
assertEquals(classNode.getQualified(), "com.github.markusbernhardt.xmldoclet.simpledata.Class15");
assertEquals(classNode.getScope(), "public");
assertEquals(classNode.getGeneric().size(), 1);
assertEquals(classNode.getMethod().size(), 0);
assertEquals(classNode.getField().size(), 0);
assertEquals(classNode.getAnnotation().size(), 0);
assertEquals(classNode.getInterface().size(), 0);
assertEquals(classNode.getClazz().getQualified(), Object.class.getName());
assertFalse(classNode.isAbstract());
assertFalse(classNode.isExternalizable());
assertTrue(classNode.isIncluded());
assertFalse(classNode.isSerializable());
assertFalse(classNode.isException());
assertFalse(classNode.isError());
// check the 'fun' type var
assertEquals(typeParameter.getName(), "Fun");
assertEquals(typeParameter.getBound().size(), 2);
assertEquals(typeParameter.getBound().get(0), Number.class.getName());
assertEquals(typeParameter.getBound().get(1), Runnable.class.getName());
}
/**
* testing integer annotation argument
*/
@Test
public void testClass16() {
String[] sourceFiles = new String[] {
"./src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Class16.java",
"./src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Annotation3.java" };
Root rootNode = executeJavadoc(null, null, null, sourceFiles, null, new String[] { "-dryrun" });
Package packageNode = rootNode.getPackage().get(0);
Class classNode = packageNode.getClazz().get(0);
AnnotationInstance instance = classNode.getAnnotation().get(0);
AnnotationArgument argument = instance.getArgument().get(0);
assertEquals(argument.getName(), "id");
assertEquals(argument.getType().getQualified(), "int");
assertEquals(argument.getValue().size(), 1);
assertEquals(argument.getValue().get(0), "3");
assertTrue(argument.isPrimitive());
assertFalse(argument.isArray());
}
/**
* testing integer array annotation argument
*/
@Test
public void testClass17() {
String[] sourceFiles = new String[] {
"./src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Class17.java",
"./src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Annotation5.java" };
Root rootNode = executeJavadoc(null, null, null, sourceFiles, null, new String[] { "-dryrun" });
Package packageNode = rootNode.getPackage().get(0);
Class classNode = packageNode.getClazz().get(0);
AnnotationInstance instance = classNode.getAnnotation().get(0);
AnnotationArgument argument = instance.getArgument().get(0);
assertEquals(argument.getType().getQualified(), "int");
assertEquals(argument.getValue().size(), 2);
assertEquals(argument.getValue().get(0), "1");
assertEquals(argument.getValue().get(1), "2");
assertTrue(argument.isPrimitive());
assertTrue(argument.isArray());
}
/**
* testing integer array annotation argument
*/
@Test
public void testClass18() {
String[] sourceFiles = new String[] {
"./src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Class18.java",
"./src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Annotation6.java" };
Root rootNode = executeJavadoc(null, null, null, sourceFiles, null, new String[] { "-dryrun" });
Package packageNode = rootNode.getPackage().get(0);
Class classNode = packageNode.getClazz().get(0);
AnnotationInstance instance = classNode.getAnnotation().get(0);
AnnotationArgument argument = instance.getArgument().get(0);
assertEquals(argument.getType().getQualified(), "java.lang.String");
assertEquals(argument.getValue().size(), 1);
assertEquals(argument.getValue().get(0), "hey");
assertFalse(argument.isPrimitive());
assertFalse(argument.isArray());
}
/**
* testing enum annotation argument
*/
@Test
public void testClass19() {
String[] sourceFiles = new String[] {
"./src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Class19.java",
"./src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Annotation7.java",
"./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);
Class classNode = packageNode.getClazz().get(0);
AnnotationInstance instance = classNode.getAnnotation().get(0);
AnnotationArgument argument = instance.getArgument().get(0);
assertEquals(argument.getType().getQualified(), "com.github.markusbernhardt.xmldoclet.simpledata.Enum1");
assertEquals(argument.getValue().size(), 1);
assertEquals(argument.getValue().get(0), "a");
assertFalse(argument.isPrimitive());
assertFalse(argument.isArray());
}
/**
* testing class annotation argument
*/
@Test
public void testClass20() {
String[] sourceFiles = new String[] {
"./src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Class20.java",
"./src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Annotation8.java" };
Root rootNode = executeJavadoc(null, null, null, sourceFiles, null, new String[] { "-dryrun" });
Package packageNode = rootNode.getPackage().get(0);
Class classNode = packageNode.getClazz().get(0);
AnnotationInstance instance = classNode.getAnnotation().get(0);
AnnotationArgument argument = instance.getArgument().get(0);
assertEquals(argument.getType().getQualified(), "java.lang.Class");
assertEquals(argument.getValue().size(), 1);
assertEquals(argument.getValue().get(0), "java.lang.String");
assertFalse(argument.isPrimitive());
assertFalse(argument.isArray());
}
/**
* testing character annotation argument
*/
@Test
public void testClass21() {
String[] sourceFiles = new String[] {
"./src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Class21.java",
"./src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Annotation10.java" };
Root rootNode = executeJavadoc(null, null, null, sourceFiles, null, new String[] { "-dryrun" });
Package packageNode = rootNode.getPackage().get(0);
Class classNode = packageNode.getClazz().get(0);
AnnotationInstance instance = classNode.getAnnotation().get(0);
AnnotationArgument argument = instance.getArgument().get(0);
assertEquals(argument.getType().getQualified(), "char");
assertEquals(argument.getValue().size(), 1);
assertEquals(argument.getValue().get(0), Integer.toString((int) 'a'));
assertTrue(argument.isPrimitive());
assertFalse(argument.isArray());
}
/**
* testing 0 character annotation argument
*/
@Test
public void testClass22() {
String[] sourceFiles = new String[] {
"./src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Class22.java",
"./src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Annotation10.java" };
Root rootNode = executeJavadoc(null, null, null, sourceFiles, null, new String[] { "-dryrun" });
Package packageNode = rootNode.getPackage().get(0);
Class classNode = packageNode.getClazz().get(0);
AnnotationInstance instance = classNode.getAnnotation().get(0);
AnnotationArgument argument = instance.getArgument().get(0);
assertEquals(argument.getType().getQualified(), "char");
assertEquals(argument.getValue().size(), 1);
assertEquals(argument.getValue().get(0), Integer.toString(0));
assertTrue(argument.isPrimitive());
assertFalse(argument.isArray());
}
/**
* testing boolean annotation argument
*/
@Test
public void testClass23() {
String[] sourceFiles = new String[] {
"./src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Class23.java",
"./src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Annotation11.java" };
Root rootNode = executeJavadoc(null, null, null, sourceFiles, null, new String[] { "-dryrun" });
Package packageNode = rootNode.getPackage().get(0);
Class classNode = packageNode.getClazz().get(0);
AnnotationInstance instance = classNode.getAnnotation().get(0);
AnnotationArgument argument = instance.getArgument().get(0);
assertEquals(argument.getType().getQualified(), "boolean");
assertEquals(argument.getValue().size(), 1);
assertEquals(argument.getValue().get(0), Boolean.TRUE.toString());
assertTrue(argument.isPrimitive());
assertFalse(argument.isArray());
}
/**
* testing empty int array annotation argument
*/
@Test
public void testClass24() {
String[] sourceFiles = new String[] {
"./src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Class24.java",
"./src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Annotation5.java" };
Root rootNode = executeJavadoc(null, null, null, sourceFiles, null, new String[] { "-dryrun" });
Package packageNode = rootNode.getPackage().get(0);
Class classNode = packageNode.getClazz().get(0);
AnnotationInstance instance = classNode.getAnnotation().get(0);
AnnotationArgument argument = instance.getArgument().get(0);
assertEquals(argument.getType().getQualified(), "int");
assertEquals(argument.getValue().size(), 0);
assertTrue(argument.isPrimitive());
assertTrue(argument.isArray());
}
}