xjavadoc.codeunit
Class CodeTestCase

java.lang.Object
  extended byjunit.framework.Assert
      extended byjunit.framework.TestCase
          extended byxjavadoc.codeunit.CodeTestCase
All Implemented Interfaces:
junit.framework.Test

public abstract class CodeTestCase
extends junit.framework.TestCase

CodeTestCase is a JUnit extension that will let you compare two sources (typically one we keep as test data and a generated one) on the API level or on the abstract syntax tree (AST) level. This is a lot more powerful than comparing on a character by character basis, because it's only "what matters" that is compared.

Author:
Aslak Helles�y

Field Summary
 
Fields inherited from class junit.framework.TestCase
 
Constructor Summary
CodeTestCase()
           
 
Method Summary
static void assertApiEquals(java.io.File expected, java.io.File actual)
          Asserts (tests) that the APIs of two sources are equal.
static void assertApiEquals(java.io.Reader expected, java.io.Reader actual)
           
private static void assertApiEquals(SourceClass expected, SourceClass actual)
           
static void assertAstEquals(java.io.File expected, java.io.File actual)
          Asserts (tests) that the ASTs of two sources are equal.
static void assertAstEquals(java.io.Reader expected, java.io.Reader actual)
           
private static void assertAstEquals(SimpleNode expected, SimpleNode actual)
           
static void assertAstEqualsDir(java.io.File expectedDir, java.io.File actualDir)
           
private static void assertConstructorEquals(XConstructor expected, XConstructor actual)
           
private static void assertConstructorsEqual(XClass expected, XClass actual)
           
static void assertEquals(java.io.File expected, java.io.File actual)
          Compares both API and AST.
static void assertEquals(java.io.Reader expected, java.io.Reader actual)
           
private static void assertFieldEquals(XField expected, XField actual)
           
private static void assertFieldsEqual(XClass expected, XClass actual)
           
private static void assertInterfacesEqual(SourceClass expected, SourceClass actual)
           
private static void assertMethodEquals(XMethod expected, XMethod actual)
           
private static void assertMethodsEqual(XClass expected, XClass actual)
           
private static void assertModifiersEqual(java.lang.String msg, XProgramElement expected, XProgramElement actual)
           
private static void assertNameEquals(java.lang.String msg, Named expected, Named actual)
           
private static void assertNameWithSignatureEquals(java.lang.String msg, XExecutableMember expected, XExecutableMember actual)
           
private static void assertParameterEquals(XParameter expected, XParameter actual)
           
private static void assertParametersEqual(java.lang.String msg, XExecutableMember expected, XExecutableMember actual)
           
private static void assertSuperclassEquals(SourceClass expected, SourceClass actual)
           
private static void assertThrownExceptionsEqual(java.lang.String msg, XExecutableMember expected, XExecutableMember actual)
           
private static void assertTypeEquals(java.lang.String msg, Type expected, Type actual)
           
private static void checkNotDir(java.io.File expected, java.io.File actual)
           
private static java.io.File getActualChild(java.io.File actualDir, java.io.File expectedChild)
           
protected  java.io.File getDir()
          Returns the directory where this class is located, provided that it's not in a jar.
protected  java.io.File getRootDir()
          Returns the root directory of the package hierarchy where this class is located, provided that it's not in a jar.
protected  XJavaDoc getXJavaDoc()
           
 
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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

CodeTestCase

public CodeTestCase()
Method Detail

assertAstEqualsDir

public static void assertAstEqualsDir(java.io.File expectedDir,
                                      java.io.File actualDir)

getActualChild

private static java.io.File getActualChild(java.io.File actualDir,
                                           java.io.File expectedChild)

assertEquals

public static void assertEquals(java.io.File expected,
                                java.io.File actual)
Compares both API and AST. Equivalent to calling assertAstEquals(java.io.File, java.io.File) and assertApiEquals(java.io.File, java.io.File).

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

assertEquals

public static void assertEquals(java.io.Reader expected,
                                java.io.Reader actual)

assertAstEquals

public static void assertAstEquals(java.io.File expected,
                                   java.io.File actual)
Asserts (tests) that the ASTs of two sources are equal. Does not compare the contents (tokens) of the nodes, and is forgiving with respect to those.

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

assertAstEquals

public static void assertAstEquals(java.io.Reader expected,
                                   java.io.Reader actual)

assertApiEquals

public static void assertApiEquals(java.io.File expected,
                                   java.io.File actual)
Asserts (tests) that the APIs of two sources are equal. Does not go into the method bodies to see if the implementation is equal, and is therefore more relaxed than assertAstEquals.

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

assertApiEquals

public static void assertApiEquals(java.io.Reader expected,
                                   java.io.Reader actual)

checkNotDir

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

assertAstEquals

private static void assertAstEquals(SimpleNode expected,
                                    SimpleNode actual)

assertApiEquals

private static void assertApiEquals(SourceClass expected,
                                    SourceClass actual)

assertFieldsEqual

private static void assertFieldsEqual(XClass expected,
                                      XClass actual)

assertConstructorsEqual

private static void assertConstructorsEqual(XClass expected,
                                            XClass actual)

assertMethodsEqual

private static void assertMethodsEqual(XClass expected,
                                       XClass actual)

assertFieldEquals

private static void assertFieldEquals(XField expected,
                                      XField actual)

assertConstructorEquals

private static void assertConstructorEquals(XConstructor expected,
                                            XConstructor actual)

assertMethodEquals

private static void assertMethodEquals(XMethod expected,
                                       XMethod actual)

assertParameterEquals

private static void assertParameterEquals(XParameter expected,
                                          XParameter actual)

assertTypeEquals

private static void assertTypeEquals(java.lang.String msg,
                                     Type expected,
                                     Type actual)

assertNameEquals

private static void assertNameEquals(java.lang.String msg,
                                     Named expected,
                                     Named actual)

assertSuperclassEquals

private static void assertSuperclassEquals(SourceClass expected,
                                           SourceClass actual)

assertInterfacesEqual

private static void assertInterfacesEqual(SourceClass expected,
                                          SourceClass actual)

assertModifiersEqual

private static void assertModifiersEqual(java.lang.String msg,
                                         XProgramElement expected,
                                         XProgramElement actual)

assertNameWithSignatureEquals

private static void assertNameWithSignatureEquals(java.lang.String msg,
                                                  XExecutableMember expected,
                                                  XExecutableMember actual)

assertParametersEqual

private static void assertParametersEqual(java.lang.String msg,
                                          XExecutableMember expected,
                                          XExecutableMember actual)

assertThrownExceptionsEqual

private static void assertThrownExceptionsEqual(java.lang.String msg,
                                                XExecutableMember expected,
                                                XExecutableMember actual)

getDir

protected java.io.File getDir()
Returns the directory where this class is located, provided that it's not in a jar. This is very useful for accessing the files you want to compare.

Returns:
the directory where this class is located.

getRootDir

protected java.io.File getRootDir()
Returns the root directory of the package hierarchy where this class is located, provided that it's not in a jar. This is very useful for accessing the files you want to compare.

Returns:
the root directory.

getXJavaDoc

protected XJavaDoc getXJavaDoc()