org.fest.assertions.api
Class AbstractComparableAssert<S,A extends Comparable<A>>

java.lang.Object
  extended by org.fest.assertions.api.AbstractAssert<S,A>
      extended by org.fest.assertions.api.AbstractComparableAssert<S,A>
Type Parameters:
S - the "self" type of this assertion class. Please read "Emulating 'self types' using Java Generics to simplify fluent API implementation" for more details.
A - the type of the "actual" value.
All Implemented Interfaces:
Assert<S,A>, ComparableAssert<S,A>, Descriptable<S>, ExtensionPoints<S,A>
Direct Known Subclasses:
AbstractUnevenComparableAssert, ByteAssert, CharacterAssert, DoubleAssert, FloatAssert, IntegerAssert, LongAssert, ShortAssert

public abstract class AbstractComparableAssert<S,A extends Comparable<A>>
extends AbstractAssert<S,A>
implements ComparableAssert<S,A>

Base class for all implementations of ComparableAssert.

Author:
Alex Ruiz

Field Summary
 
Fields inherited from class org.fest.assertions.api.AbstractAssert
actual, myself
 
Constructor Summary
protected AbstractComparableAssert(A actual, Class<S> selfType)
           
 
Method Summary
 S isGreaterThan(A other)
          Verifies that the actual value is greater than the given one.
 S isGreaterThanOrEqualTo(A other)
          Verifies that the actual value is greater than or equal to the given one.
 S isLessThan(A other)
          Verifies that the actual value is less than the given one.
 S isLessThanOrEqualTo(A other)
          Verifies that the actual value is less than or equal to the given one.
 S usingComparator(Comparator<?> customComparator)
          Use given custom comparator instead of relying on actual type A equals method for incoming assertion checks.
 S usingDefaultComparator()
          Revert to standard comparison for incoming assertion checks.
 
Methods inherited from class org.fest.assertions.api.AbstractAssert
as, as, describedAs, describedAs, descriptionText, doesNotHave, equals, has, hashCode, is, isEqualTo, isIn, isIn, isNot, isNotEqualTo, isNotIn, isNotIn, isNotNull, isNotSameAs, isNull, isSameAs
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractComparableAssert

protected AbstractComparableAssert(A actual,
                                   Class<S> selfType)
Method Detail

isLessThan

public final S isLessThan(A other)
Verifies that the actual value is less than the given one.

Specified by:
isLessThan in interface ComparableAssert<S,A extends Comparable<A>>
Parameters:
other - the given value to compare the actual value to.
Returns:
this assertion object.

isLessThanOrEqualTo

public final S isLessThanOrEqualTo(A other)
Verifies that the actual value is less than or equal to the given one.

Specified by:
isLessThanOrEqualTo in interface ComparableAssert<S,A extends Comparable<A>>
Parameters:
other - the given value to compare the actual value to.
Returns:
this assertion object.

isGreaterThan

public final S isGreaterThan(A other)
Verifies that the actual value is greater than the given one.

Specified by:
isGreaterThan in interface ComparableAssert<S,A extends Comparable<A>>
Parameters:
other - the given value to compare the actual value to.
Returns:
this assertion object.

isGreaterThanOrEqualTo

public final S isGreaterThanOrEqualTo(A other)
Verifies that the actual value is greater than or equal to the given one.

Specified by:
isGreaterThanOrEqualTo in interface ComparableAssert<S,A extends Comparable<A>>
Parameters:
other - the given value to compare the actual value to.
Returns:
this assertion object.

usingComparator

public S usingComparator(Comparator<?> customComparator)
Description copied from class: AbstractAssert
Use given custom comparator instead of relying on actual type A equals method for incoming assertion checks.
Custom comparator is bound to assertion instance, meaning that if a new assertion is created, it will use default comparison strategy.

Example :
 // compares invoices by payee 
 assertThat(invoiceList).usingComparator(invoicePayeeComparator).isEqualTo(expectedInvoiceList).
 
 // compares invoices by date, doesNotHaveDuplicates and contains both use the given invoice date comparator
 assertThat(invoiceList).usingComparator(invoiceDateComparator).doesNotHaveDuplicates().contains(may2010Invoice)
 
 // as assertThat(invoiceList) creates a new assertion, it uses standard comparison strategy (Invoice's equal method) to compare invoiceList elements to lowestInvoice.                                                      
 assertThat(invoiceList).contains(lowestInvoice).
 
Custom comparator is not parameterized with actual type A (ie. Comparator<A>) because if it was, we could not write the following code :
 // frodo and sam are instances of Character (a Character having a Race)
 // raceComparator implements Comparator<Character> 
 // assertThat(frodo) returns an ObjectAssert and not a custom CharacterAssert implementing Assert<CharacterAssert, Character>  
 assertThat(frodo).usingComparator(raceComparator).isEqualTo(sam); // won't compile !
 
 The code does not compile because assertThat(frodo) returns an ObjectAssert, thus usingComparator expects a Comparator<Object> 
 and Comparator<Character> is not a Comparator<Object> as generics are not reified.
 
 Note that, it would have worked if assertThat(frodo) returned a CharacterAssert implementing Assert<CharacterAssert, Character>. 
 

Specified by:
usingComparator in interface Assert<S,A extends Comparable<A>>
Overrides:
usingComparator in class AbstractAssert<S,A extends Comparable<A>>
Parameters:
customComparator - the comparator to use for incoming assertion checks.
Returns:
this assertion object.

usingDefaultComparator

public S usingDefaultComparator()
Description copied from class: AbstractAssert
Revert to standard comparison for incoming assertion checks.
This method should be used to disable a custom comparison strategy set by calling Assert.usingComparator(Comparator).

Specified by:
usingDefaultComparator in interface Assert<S,A extends Comparable<A>>
Overrides:
usingDefaultComparator in class AbstractAssert<S,A extends Comparable<A>>
Returns:
this assertion object.


Copyright © 2007-2012 FEST (Fixtures for Easy Software Testing). All Rights Reserved.