com.thoughtworks.qdox.junit
Class APITestCase

java.lang.Object
  extended by junit.framework.Assert
      extended by junit.framework.TestCase
          extended by com.thoughtworks.qdox.junit.APITestCase
All Implemented Interfaces:
junit.framework.Test

public abstract class APITestCase
extends junit.framework.TestCase

APITestCase is a JUnit extension that will let you compare two sources (typically one kept as a static expected result and a generated one) on the API level.

This class has been ported from XJavaDoc's CodeTestCase, carrying over only the parts that compare on the API level. The original CodeTestCase also has comparison of Java source AST (Abstract Syntax Trees). This will probably be extracted into a ASTTestCase class and hosted as a separate project somewhere else. It should probably be based on JavaCC for ease of porting.

Author:
Aslak Hellesøy, Laurent Etiemble

Field Summary
private static java.util.Comparator ENTITY_COMPARATOR
           
 
Constructor Summary
APITestCase()
           
 
Method Summary
private static void assertApiEquals(JavaSource expected, JavaSource actual)
          Compares API of both JavaSource objects.
static void assertApiEquals(java.net.URL expected, java.net.URL actual)
          Compares API of both sources in the readers.
private static void assertClassesEqual(JavaClass expected, JavaClass actual)
          Compares an actual field to an expected one.
private static void assertFieldEquals(JavaField expected, JavaField actual)
          Compares an actual field to an expected one.
private static void assertFieldsEqual(JavaClass expected, JavaClass actual)
          Compares fields from an actual class to an expected one.
private static void assertInnerClassesEquals(JavaClass expected, JavaClass actual)
          Compares inner classes from an actual class to an expected one.
private static void assertInterfacesEqual(JavaClass expected, JavaClass actual)
          Compares implemented interfaces from an actual class to an expected one.
private static void assertMethodsEqual(JavaClass expected, JavaClass actual)
          Compares constructors and methods from an actual class to an expected one.
private static void assertModifiersEquals(java.lang.String msg, AbstractJavaEntity expected, AbstractJavaEntity actual)
          Compares modifiers an actual entity.
private static void assertNotDir(java.io.File expected, java.io.File actual)
           
protected  java.io.File getDir()
           
protected  java.io.File getRootDir()
           
 
Methods inherited from class junit.framework.TestCase
countTestCases, createResult, getName, run, run, runBare, runTest, setName, setUp, tearDown, toString
 
Methods inherited from class junit.framework.Assert
assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertFalse, assertFalse, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertTrue, assertTrue, fail, fail, failNotEquals, failNotSame, failSame
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

ENTITY_COMPARATOR

private static java.util.Comparator ENTITY_COMPARATOR
Constructor Detail

APITestCase

public APITestCase()
Method Detail

assertApiEquals

public static void assertApiEquals(java.net.URL expected,
                                   java.net.URL actual)
                            throws java.io.IOException
Compares API of both sources in the readers.

Note: This method is for backward naming compatiblity with xjavadoc.codeunit.CodeTestCase.

Parameters:
expected - the expected source
actual - the actual source
Throws:
java.io.IOException

assertApiEquals

private static void assertApiEquals(JavaSource expected,
                                    JavaSource actual)
Compares API of both JavaSource objects.

Parameters:
expected - the expected source
actual - the actual source

assertClassesEqual

private static void assertClassesEqual(JavaClass expected,
                                       JavaClass actual)
Compares an actual field to an expected one.

As JavaClass doesn't not implements equals and hashCode methods, the comparison is done by hand.

Parameters:
expected -
actual -

assertFieldEquals

private static void assertFieldEquals(JavaField expected,
                                      JavaField actual)
Compares an actual field to an expected one.

As JavaField doesn't not implements equals and hashCode methods, the comparison is done by hand.

Parameters:
expected -
actual -

assertFieldsEqual

private static void assertFieldsEqual(JavaClass expected,
                                      JavaClass actual)
Compares fields from an actual class to an expected one.

The fields are sorted by name before comparison to be sure that even if the fields are defined in a different order, the comparison is still right.


assertInnerClassesEquals

private static void assertInnerClassesEquals(JavaClass expected,
                                             JavaClass actual)
Compares inner classes from an actual class to an expected one.

The inner classes are sorted by name before comparison to be sure that even if the inner classes are defined in a different order, the comparison is still right.


assertInterfacesEqual

private static void assertInterfacesEqual(JavaClass expected,
                                          JavaClass actual)
Compares implemented interfaces from an actual class to an expected one.

The implemented interfaces are sorted by name before comparison to be sure that even if the implemented interfaces are defined in a different order, the comparison is still right.


assertMethodsEqual

private static void assertMethodsEqual(JavaClass expected,
                                       JavaClass actual)
Compares constructors and methods from an actual class to an expected one.

The constructors and the methods are sorted by name before comparison to be sure that even if the constructors and methods are defined in a different order, the comparison is still right.


assertModifiersEquals

private static void assertModifiersEquals(java.lang.String msg,
                                          AbstractJavaEntity expected,
                                          AbstractJavaEntity actual)
Compares modifiers an actual entity.

The modifiers are sorted by name before comparison to be sure that even if the modifiers are defined in a different order, the comparison is still right.


assertNotDir

private static void assertNotDir(java.io.File expected,
                                 java.io.File actual)

getDir

protected java.io.File getDir()

getRootDir

protected java.io.File getRootDir()