// Path: src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Class1.java
// public class Class1 {
// 
// }
// 
// Path: src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Class3.java
// public class Class3 {
// 	/**
// 	 * method1
// 	 * 
// 	 * @return int
// 	 */
// 	public int method1() {
// 		return 0;
// 	}
// }
// 
// Path: src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Class4.java
// public class Class4 {
// 	/**
// 	 * field1
// 	 */
// 	public int field1;
// }
// 
// Path: src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Class5.java
// public class Class5 extends Class3 {
// 
// }
// 
// Path: src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Class6.java
// @SuppressWarnings("serial")
// public class Class6 implements java.io.Serializable {
// 
// }
// 
// Path: src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Class8.java
// public abstract class Class8 {
// 
// }
// 
// Path: src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Class9.java
// public class Class9 implements java.io.Externalizable {
// 
// 	public void writeExternal(ObjectOutput out) throws IOException {
// 		// To change body of implemented methods use File | Settings | File
// 		// Templates.
// 	}
// 
// 	public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
// 		// To change body of implemented methods use File | Settings | File
// 		// Templates.
// 	}
// }
// 
// Path: src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/ClassAnnotationCascade.java
// @AnnotationCascade(
// 		children= {
// 			@AnnotationCascadeChild(name="primitive",
// 					dummyData= {"A", "B", "C"}
// 					),
// 			@AnnotationCascadeChild(name="nested",
// 			subAnnotations= {
// 					@Annotation3(id=4),
// 					@Annotation3(id=5),
// 					@Annotation3(id=666)
// 					
// 			})
// 			}
// 		)
// public class ClassAnnotationCascade implements Interface2 {
// 	
// 	public void test() {
// 		
// 	}
// 
// 	/**
// 	 * {@inheritDoc}
// 	 */
// 	@Override
// 	public int method1() {
// 		return 0;
// 	}
// }


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.Annotation3;
import com.github.markusbernhardt.xmldoclet.simpledata.AnnotationCascadeChild;
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.simpledata.ClassAnnotationCascade;
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;

		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);

// Path: src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Class1.java
// public class Class1 {
// 
// }
// 
// Path: src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Class3.java
// public class Class3 {
// 	/**
// 	 * method1
// 	 * 
// 	 * @return int
// 	 */
// 	public int method1() {
// 		return 0;
// 	}
// }
// 
// Path: src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Class4.java
// public class Class4 {
// 	/**
// 	 * field1
// 	 */
// 	public int field1;
// }
// 
// Path: src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Class5.java
// public class Class5 extends Class3 {
// 
// }
// 
// Path: src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Class6.java
// @SuppressWarnings("serial")
// public class Class6 implements java.io.Serializable {
// 
// }
// 
// Path: src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Class8.java
// public abstract class Class8 {
// 
// }
// 
// Path: src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/Class9.java
// public class Class9 implements java.io.Externalizable {
// 
// 	public void writeExternal(ObjectOutput out) throws IOException {
// 		// To change body of implemented methods use File | Settings | File
// 		// Templates.
// 	}
// 
// 	public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
// 		// To change body of implemented methods use File | Settings | File
// 		// Templates.
// 	}
// }
// 
// Path: src/test/java/com/github/markusbernhardt/xmldoclet/simpledata/ClassAnnotationCascade.java
// @AnnotationCascade(
// 		children= {
// 			@AnnotationCascadeChild(name="primitive",
// 					dummyData= {"A", "B", "C"}
// 					),
// 			@AnnotationCascadeChild(name="nested",
// 			subAnnotations= {
// 					@Annotation3(id=4),
// 					@Annotation3(id=5),
// 					@Annotation3(id=666)
// 					
// 			})
// 			}
// 		)
// public class ClassAnnotationCascade implements Interface2 {
// 	
// 	public void test() {
// 		
// 	}
// 
// 	/**
// 	 * {@inheritDoc}
// 	 */
// 	@Override
// 	public int method1() {
// 		return 0;
// 	}
// }


// Path: src/test/java/com/github/markusbernhardt/xmldoclet/ClassTest.java
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.Annotation3;
import com.github.markusbernhardt.xmldoclet.simpledata.AnnotationCascadeChild;
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.simpledata.ClassAnnotationCascade;
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;

		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);
