JUnit-addons
============


Changes from version 1.3 to 1.4
===============================

Framework
---------

* FileAssert: fix bug 724587: ignoring last line of file

* ListAssert (new class)

* NamingAssert (new class)

* ObjectAssert
  New methods: assertSame (with better ouput message)
               assertNotSame (with better output message)

* StringAssert
  New methods: assertStartsWith(String substring, String actual)
               assertNotStartsWith(String substring, String actual)
               assertEndsWith(String substring, String actual)
               assertNotEndsWith(String substring, String actual)

Util
----

* Converter: removed the deprecated methods

* NamingUtil: intial import of convenient methods for the javax.naming package

* SuiteBuilder: removed the deprecated methods

* TestFilter: new method include(String) that is invoked before the class is
  loaded to speed up the discovery process.


Changes from version 1.2 to 1.3
===============================

Framework
---------

* Assert
  New methods: fail(Throwable cause) and fail(String message, Throwable cause)
               assertEquals(String expected, String actual)
               assertEquals(String message, String expected, String actual)
               
* AssertionFailedError
  Similar to the official one but supports chained exceptions.

* ComparisonFailure
  Similar to the official one but displayed message is at least 10 characters
  long (useful when only one character changes).

Util
----

* PrivateAccessor
  Correctly reports the exception thrown by an invoked method (the exception was
  perviously hidden into an InvocationTargetException exception).  Already
  written test cases may be broken (the invoke method now throws Throwable and
  not simply Exception).  Thanks to Dan Griffin for finding this one.

* PropertyManager
  Method setProperty(String, String) added.

* ResourceManager
  New method hasResource added.  The signature of the getResource method 
  slightly changed (returns null if the resource is not found) and it may break
  some already written tests.

* TestFilter (new interface)
  The ArchiveSuiteBuilder and DirectorySuiteBuilder now use a TestFilter to 
  define if a class must be included into the TestSuite.  This new mechanism is
  more flexible than the previously implemented one (now deprecated).

* ThrowableUtil (new class)
  Contains a method to return the stacktrace.


Changes from version 1.1 to 1.2
===============================

Framework
---------

* ArrayAssert
  Support of basic types

* ThrowableAssert (new class)
  Tests for Throwable (both Exception and Error) objects.

Extensions
----------

* ComparabilityTestCase (new class)

* EqualsHashCodeTestCase (new class)

* SerializabilityTestCase (new class)

Util
----

* ArchiveSuiteBuilder (new class)
  Extracts the test classes from an archive (jar or zip file)

* ResourceManager (new class)
  Allow tests to share the same resources

* Converter (new class)
  Placeholder for various conversion methods


Changes from version 3.7.1 to 1.1
=================================

Framework
---------

* FileAssert (new class)
  Tests both text and binary files.

* ComparableAssert (new class)
  Tests for Comparable objects.

* OrderedTestSuite (new class)
  TestSuite that executes the tests in an alphabetical order.

Extensions
----------

* TestSetup (new class)
  Always executes the tearDown method, even if errors occured during the setup
  of the fixture of the execution of the test

Tool
----

* TestClassValidator (enhancements)
  Checks the validity of the "testXYZ" methods.

Misc
----

* the numbering has been changed since we support both JUnit 3.7 and JUnit 3.8.x