Class ListAssert<T>

Type Parameters:
T - the type of elements of the "actual" value.
All Implemented Interfaces:
Assert<ListAssert<T>,List<T>>, Descriptable<ListAssert<T>>, EnumerableAssert<ListAssert<T>,T>, ExtensionPoints<ListAssert<T>,List<T>>, IndexedObjectEnumerableAssert<ListAssert<T>,T>, ObjectEnumerableAssert<ListAssert<T>,T>

public class ListAssert<T> extends AbstractIterableAssert<ListAssert<T>,List<T>,T> implements IndexedObjectEnumerableAssert<ListAssert<T>,T>
Assertion methods for Lists.

To create an instance of this class, invoke Assertions.assertThat(List).

Author:
Yvonne Wang, Alex Ruiz, Joel Costigliola, Mikhail Mazursky
  • Constructor Details

    • ListAssert

      protected ListAssert(List<T> actual)
  • Method Details

    • contains

      public ListAssert<T> contains(T value, Index index)
      Verifies that the actual group contains the given object at the given index.
      Specified by:
      contains in interface IndexedObjectEnumerableAssert<ListAssert<T>,T>
      Parameters:
      value - the object to look for.
      index - the index where the object should be stored in the actual group.
      Returns:
      this assertion object.
    • doesNotContain

      public ListAssert<T> doesNotContain(T value, Index index)
      Verifies that the actual group does not contain the given object at the given index.
      Specified by:
      doesNotContain in interface IndexedObjectEnumerableAssert<ListAssert<T>,T>
      Parameters:
      value - the object to look for.
      index - the index where the object should be stored in the actual group.
      Returns:
      this assertion object.
    • has

      public ListAssert<T> has(Condition<? super T> condition, Index index)
      Verifies that the actual object at the given index in the actual group satisfies the given condition.
      Parameters:
      condition - the given condition.
      index - the index where the object should be stored in the actual group.
      Returns:
      this assertion object.
      Throws:
      AssertionError - if the given List is null or empty.
      NullPointerException - if the given Index is null.
      IndexOutOfBoundsException - if the value of the given Index is equal to or greater than the size of the given List.
      NullPointerException - if the given Condition is null.
      AssertionError - if the value in the given List at the given index does not satisfy the given Condition .
    • is

      public ListAssert<T> is(Condition<? super T> condition, Index index)
      Verifies that the actual object at the given index in the actual group satisfies the given condition.
      Parameters:
      condition - the given condition.
      index - the index where the object should be stored in the actual group.
      Returns:
      this assertion object.
      Throws:
      AssertionError - if the given List is null or empty.
      NullPointerException - if the given Index is null.
      IndexOutOfBoundsException - if the value of the given Index is equal to or greater than the size of the given List.
      NullPointerException - if the given Condition is null.
      AssertionError - if the value in the given List at the given index does not satisfy the given Condition .
    • isSorted

      public ListAssert<T> isSorted()
      Verifies that the actual list is sorted into ascending order according to the natural ordering of its elements.

      All list elements must implement the Comparable interface and must be mutually comparable (that is, e1.compareTo(e2) must not throw a ClassCastException for any elements e1 and e2 in the list), examples :

      • a list composed of {"a1", "a2", "a3"} is ok because the element type (String) is Comparable
      • a list composed of Rectangle {r1, r2, r3} is NOT ok because Rectangle is not Comparable
      • a list composed of {True, "abc", False} is NOT ok because elements are not mutually comparable
      Empty lists are considered sorted.
      Unique element lists are considered sorted unless the element type is not Comparable.
      Returns:
      this assertion object.
      Throws:
      AssertionError - if the actual list is not sorted into ascending order according to the natural ordering of its elements.
      AssertionError - if the actual list is null.
      AssertionError - if the actual list element type does not implement Comparable.
      AssertionError - if the actual list elements are not mutually Comparable.
    • isSortedAccordingTo

      public ListAssert<T> isSortedAccordingTo(Comparator<? super T> comparator)
      Verifies that the actual list is sorted according to the given comparator.
      Empty lists are considered sorted whatever the comparator is.
      One element lists are considered sorted if element is compatible with comparator.
      Parameters:
      comparator - the Comparator used to compare list elements
      Returns:
      this assertion object.
      Throws:
      AssertionError - if the actual list is not sorted according to the given comparator.
      AssertionError - if the actual list is null.
      NullPointerException - if the given comparator is null.
      AssertionError - if the actual list elements are not mutually comparable according to given Comparator.
    • usingElementComparator

      public ListAssert<T> usingElementComparator(Comparator<? super T> customComparator)
      Description copied from class: AbstractIterableAssert
      Use given custom comparator instead of relying on actual type A equals method to compare group elements 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.

      Examples :

       // 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 falls back to standard comparison strategy 
       // based on Invoice's equal method to compare invoiceList elements to lowestInvoice.                                                      
       assertThat(invoiceList).contains(lowestInvoice).
       
       // standard comparison : the fellowshipOfTheRing includes Gandalf but not Sauron (believe me) ...
       assertThat(fellowshipOfTheRing).contains(gandalf)
                                      .doesNotContain(sauron);
       
       // ... but if we compare only races, Sauron is in fellowshipOfTheRing because he's a Maia like Gandalf.
       assertThat(fellowshipOfTheRing).usingElementComparator(raceComparator)
                                      .contains(sauron);
       
      Specified by:
      usingElementComparator in interface EnumerableAssert<ListAssert<T>,T>
      Overrides:
      usingElementComparator in class AbstractIterableAssert<ListAssert<T>,List<T>,T>
      Parameters:
      customComparator - the comparator to use for incoming assertion checks.
      Returns:
      this assertion object.
    • usingDefaultElementComparator

      public ListAssert<T> usingDefaultElementComparator()
      Description copied from class: AbstractIterableAssert
      Revert to standard comparison for incoming assertion group element checks.

      This method should be used to disable a custom comparison strategy set by calling EnumerableAssert.usingElementComparator(Comparator).

      Specified by:
      usingDefaultElementComparator in interface EnumerableAssert<ListAssert<T>,T>
      Overrides:
      usingDefaultElementComparator in class AbstractIterableAssert<ListAssert<T>,List<T>,T>
      Returns:
      this assertion object.