Class Iterables

java.lang.Object
org.assertj.core.internal.Iterables

public class Iterables extends Object
Reusable assertions for Iterables.
  • Field Details

  • Constructor Details

    • Iterables

      Iterables()
    • Iterables

      public Iterables(ComparisonStrategy comparisonStrategy)
  • Method Details

    • instance

      public static Iterables instance()
      Returns the singleton instance of this class based on StandardComparisonStrategy.
      Returns:
      the singleton instance of this class based on StandardComparisonStrategy.
    • getComparator

      public Comparator<?> getComparator()
    • getComparisonStrategy

      public ComparisonStrategy getComparisonStrategy()
    • assertNullOrEmpty

      public void assertNullOrEmpty(AssertionInfo info, Iterable<?> actual)
      Asserts that the given Iterable is null or empty.
      Parameters:
      info - contains information about the assertion.
      actual - the given Iterable.
      Throws:
      AssertionError - if the given Iterable is not null *and* contains one or more elements.
    • assertEmpty

      public void assertEmpty(AssertionInfo info, Iterable<?> actual)
      Asserts that the given Iterable is empty.
      Parameters:
      info - contains information about the assertion.
      actual - the given Iterable.
      Throws:
      AssertionError - if the given Iterable is null.
      AssertionError - if the given Iterable is not empty.
    • assertNotEmpty

      public void assertNotEmpty(AssertionInfo info, Iterable<?> actual)
      Asserts that the given Iterable is not empty.
      Parameters:
      info - contains information about the assertion.
      actual - the given Iterable.
      Throws:
      AssertionError - if the given Iterable is null.
      AssertionError - if the given Iterable is empty.
    • assertHasSize

      public void assertHasSize(AssertionInfo info, Iterable<?> actual, int expectedSize)
      Asserts that the number of elements in the given Iterable is equal to the expected one.
      Parameters:
      info - contains information about the assertion.
      actual - the given Iterable.
      expectedSize - the expected size of actual.
      Throws:
      AssertionError - if the given Iterable is null.
      AssertionError - if the number of elements in the given Iterable is different than the expected one.
    • assertHasSameSizeAs

      public void assertHasSameSizeAs(AssertionInfo info, Iterable<?> actual, Object other)
      Assert that the actual Iterable has the same size as the other array.
      Parameters:
      info - contains information about the assertion.
      actual - the given Iterable.
      other - the given array to compare.
      Throws:
      AssertionError - if the actual group is null.
      AssertionError - if the other group is null.
      AssertionError - if actual Iterable and other array don't have the same size.
    • assertHasSameSizeAs

      public void assertHasSameSizeAs(AssertionInfo info, Iterable<?> actual, Iterable<?> other)
      Assert that the actual Iterable has the same size as the other Iterable.
      Parameters:
      info - contains information about the assertion.
      actual - the given Iterable.
      other - the given Iterable.
      Throws:
      AssertionError - if the actual group is null.
      AssertionError - if the other group is null.
      AssertionError - if actual and other Iterable don't have the same size.
    • assertContains

      public void assertContains(AssertionInfo info, Iterable<?> actual, Object[] values)
      Asserts that the given Iterable contains the given values, in any order.
      Parameters:
      info - contains information about the assertion.
      actual - the given Iterable.
      values - the values that are expected to be in the given Iterable.
      Throws:
      NullPointerException - if the array of values is null.
      IllegalArgumentException - if the array of values is empty.
      AssertionError - if the given Iterable is null.
      AssertionError - if the given Iterable does not contain the given values.
    • assertIterableContainsGivenValues

      private void assertIterableContainsGivenValues(Iterable<?> actual, Object[] values, AssertionInfo info)
    • iterableContains

      private boolean iterableContains(Iterable<?> actual, Object value)
    • iterablesRemoveFirst

      private void iterablesRemoveFirst(Iterable<?> actual, Object value)
    • assertContainsOnly

      public void assertContainsOnly(AssertionInfo info, Iterable<?> actual, Object[] values)
      Asserts that the given Iterable contains only the given values and nothing else, in any order.
      Parameters:
      info - contains information about the assertion.
      actual - the given Iterable.
      values - the values that are expected to be in the given Iterable.
      Throws:
      NullPointerException - if the array of values is null.
      IllegalArgumentException - if the array of values is empty.
      AssertionError - if the given Iterable is null.
      AssertionError - if the given Iterable does not contain the given values or if the given Iterable contains values that are not in the given array.
    • assertContainsOnlyOnce

      public void assertContainsOnlyOnce(AssertionInfo info, Iterable<?> actual, Object[] values)
      Asserts that the given Iterable contains the given values and only once.
      Parameters:
      info - contains information about the assertion.
      actual - the given Iterable.
      values - the values that are expected to be in the given Iterable.
      Throws:
      NullPointerException - if the array of values is null.
      IllegalArgumentException - if the array of values is empty.
      AssertionError - if the given Iterable is null.
      AssertionError - if the given Iterable does not contain the given values or if the given Iterable contains values that are not in the given array.
    • assertContainsSequence

      public void assertContainsSequence(AssertionInfo info, Iterable<?> actual, Object[] sequence)
      Verifies that the given Iterable contains the given sequence of objects, without any other objects between them.
      Parameters:
      info - contains information about the assertion.
      actual - the given Iterable.
      sequence - the sequence of objects to look for.
      Throws:
      AssertionError - if the given Iterable is null.
      NullPointerException - if the given sequence is null.
      IllegalArgumentException - if the given sequence is empty.
      AssertionError - if the given Iterable does not contain the given sequence of objects.
    • assertDoesNotContainSequence

      public void assertDoesNotContainSequence(AssertionInfo info, Iterable<?> actual, Object[] sequence)
      Verifies that the given Iterable does not contain the given sequence of objects in order.
      Parameters:
      info - contains information about the assertion.
      actual - the given Iterable.
      sequence - the sequence of objects to look for.
      Throws:
      AssertionError - if the given Iterable is null.
      NullPointerException - if the given sequence is null.
      IllegalArgumentException - if the given sequence is empty.
      AssertionError - if the given Iterable does contain the given sequence of objects.
    • assertContainsSubsequence

      public void assertContainsSubsequence(AssertionInfo info, Iterable<?> actual, Object[] subsequence)
      Verifies that the given Iterable contains the given subsequence of objects (possibly with other values between them).
      Parameters:
      info - contains information about the assertion.
      actual - the given Iterable.
      subsequence - the subsequence of objects to look for.
      Throws:
      AssertionError - if the given Iterable is null.
      NullPointerException - if the given sequence is null.
      IllegalArgumentException - if the given subsequence is empty.
      AssertionError - if the given Iterable does not contain the given subsequence of objects.
    • assertContainsSubsequence

      public void assertContainsSubsequence(AssertionInfo info, Iterable<?> actual, List<?> subsequence)
    • assertDoesNotContainSubsequence

      public void assertDoesNotContainSubsequence(AssertionInfo info, Iterable<?> actual, Object[] subsequence)
      Verifies that the given Iterable does not contain the given subsequence of objects (possibly with other values between them).
      Parameters:
      info - contains information about the assertion.
      actual - the given Iterable.
      subsequence - the subsequence of objects to look for.
      Throws:
      AssertionError - if the given Iterable is null.
      NullPointerException - if the given sequence is null.
      IllegalArgumentException - if the given subsequence is empty.
      AssertionError - if the given Iterable contains the given subsequence of objects.
    • assertIsSubsetOf

      public void assertIsSubsetOf(AssertionInfo info, Iterable<?> actual, Iterable<?> values)
      Verifies that the actual Iterable is a subset of values Iterable.
      Both actual and given iterable are treated as sets, therefore duplicates on either of them are ignored.
      Parameters:
      info - contains information about the assertion.
      actual - the actual Iterable.
      values - the Iterable that should contain all actual elements.
      Throws:
      AssertionError - if the actual Iterable is null.
      NullPointerException - if the given Iterable is null.
      AssertionError - if the actual Iterable is not subset of set Iterable
    • containsSequenceAtGivenIndex

      private boolean containsSequenceAtGivenIndex(List<?> actualAsList, Object[] sequence, int startingIndex)
      Return true if actualAsList contains exactly the given sequence at given starting index, false otherwise.
      Parameters:
      actualAsList - the list to look sequence in
      sequence - the sequence to look for
      startingIndex - the index of actual list at which we start looking for sequence.
      Returns:
      true if actualAsList contains exactly the given sequence at given starting index, false otherwise.
    • areEqual

      private boolean areEqual(Object actual, Object other)
    • actualDoesNotContainSequence

      private AssertionError actualDoesNotContainSequence(AssertionInfo info, Iterable<?> actual, Object[] sequence)
    • actualDoesContainSequence

      private AssertionError actualDoesContainSequence(AssertionInfo info, Iterable<?> actual, Object[] sequence, int index)
    • actualDoesNotContainSubsequence

      private AssertionError actualDoesNotContainSubsequence(AssertionInfo info, Iterable<?> actual, Object[] subsequence)
    • actualContainsSubsequence

      private AssertionError actualContainsSubsequence(AssertionInfo info, Iterable<?> actual, Object[] subsequence, int index)
    • assertDoesNotContain

      public void assertDoesNotContain(AssertionInfo info, Iterable<?> actual, Object[] values)
      Asserts that the given Iterable does not contain the given values.
      Parameters:
      info - contains information about the assertion.
      actual - the given Iterable.
      values - the values that are expected not to be in the given Iterable.
      Throws:
      NullPointerException - if the array of values is null.
      IllegalArgumentException - if the array of values is empty.
      AssertionError - if the given Iterable is null.
      AssertionError - if the given Iterable contains any of given values.
    • assertDoesNotContainAnyElementsOf

      public <T> void assertDoesNotContainAnyElementsOf(AssertionInfo info, Iterable<? extends T> actual, Iterable<? extends T> iterable)
      Asserts that the given Iterable does not contain the given values.
      Parameters:
      info - contains information about the assertion.
      actual - the given Iterable.
      iterable - the values that are expected not to be in the given Iterable.
      Throws:
      NullPointerException - if the array of values is null.
      IllegalArgumentException - if the array of values is empty.
      AssertionError - if the given Iterable is null.
      AssertionError - if the given Iterable contains any of given values.
    • assertDoesNotHaveDuplicates

      public void assertDoesNotHaveDuplicates(AssertionInfo info, Iterable<?> actual)
      Asserts that the given Iterable does not have duplicate values.
      Parameters:
      info - contains information about the assertion.
      actual - the given Iterable.
      Throws:
      NullPointerException - if the array of values is null.
      IllegalArgumentException - if the array of values is empty.
      AssertionError - if the given Iterable is null.
      AssertionError - if the given Iterable contains duplicate values.
    • assertStartsWith

      public void assertStartsWith(AssertionInfo info, Iterable<?> actual, Object[] sequence)
      Verifies that the given Iterable starts with the given sequence of objects, without any other objects between them. Similar to assertContainsSequence(AssertionInfo, Iterable, Object[]), but it also verifies that the first element in the sequence is also the first element of the given Iterable.
      Parameters:
      info - contains information about the assertion.
      actual - the given Iterable.
      sequence - the sequence of objects to look for.
      Throws:
      NullPointerException - if the given argument is null.
      IllegalArgumentException - if the given argument is an empty array.
      AssertionError - if the given Iterable is null.
      AssertionError - if the given Iterable does not start with the given sequence of objects.
    • actualDoesNotStartWithSequence

      private AssertionError actualDoesNotStartWithSequence(AssertionInfo info, Iterable<?> actual, Object[] sequence)
    • assertEndsWith

      public void assertEndsWith(AssertionInfo info, Iterable<?> actual, Object[] sequence)
      Verifies that the given Iterable ends with the given sequence of objects, without any other objects between them. Similar to assertContainsSequence(AssertionInfo, Iterable, Object[]), but it also verifies that the last element in the sequence is also the last element of the given Iterable.
      Parameters:
      info - contains information about the assertion.
      actual - the given Iterable.
      sequence - the sequence of objects to look for.
      Throws:
      NullPointerException - if the given argument is null.
      IllegalArgumentException - if the given argument is an empty array.
      AssertionError - if the given Iterable is null.
      AssertionError - if the given Iterable does not end with the given sequence of objects.
    • commonCheckThatIterableAssertionSucceeds

      private boolean commonCheckThatIterableAssertionSucceeds(AssertionInfo info, Iterable<?> actual, Object[] sequence)
    • assertContainsNull

      public void assertContainsNull(AssertionInfo info, Iterable<?> actual)
      Asserts that the given Iterable contains at least a null element.
      Parameters:
      info - contains information about the assertion.
      actual - the given Iterable.
      Throws:
      AssertionError - if the given Iterable is null.
      AssertionError - if the given Iterable does not contain at least a null element.
    • assertDoesNotContainNull

      public void assertDoesNotContainNull(AssertionInfo info, Iterable<?> actual)
      Asserts that the given Iterable does not contain null elements.
      Parameters:
      info - contains information about the assertion.
      actual - the given Iterable.
      Throws:
      AssertionError - if the given Iterable is null.
      AssertionError - if the given Iterable contains a null element.
    • assertAre

      public <T> void assertAre(AssertionInfo info, Iterable<? extends T> actual, Condition<? super T> condition)
      Assert that each element of given Iterable satisfies the given condition.
      Parameters:
      info - contains information about the assertion.
      actual - the given Iterable.
      condition - the given Condition.
      Throws:
      NullPointerException - if the given condition is null.
      AssertionError - if an element cannot be cast to T.
      AssertionError - if one or more elements do not satisfy the given condition.
    • assertAreNot

      public <E> void assertAreNot(AssertionInfo info, Iterable<? extends E> actual, Condition<? super E> condition)
      Assert that each element of given Iterable not satisfies the given condition.
      Parameters:
      info - contains information about the assertion.
      actual - the given Iterable.
      condition - the given Condition.
      Throws:
      NullPointerException - if the given condition is null.
      AssertionError - if an element cannot be cast to E.
      AssertionError - if one or more elements satisfy the given condition.
    • assertHave

      public <E> void assertHave(AssertionInfo info, Iterable<? extends E> actual, Condition<? super E> condition)
      Assert that each element of given Iterable satisfies the given condition.
      Parameters:
      info - contains information about the assertion.
      actual - the given Iterable.
      condition - the given Condition.
      Throws:
      NullPointerException - if the given condition is null.
      AssertionError - if an element cannot be cast to E.
      AssertionError - if one or more elements do not satisfy the given condition.
    • assertDoNotHave

      public <E> void assertDoNotHave(AssertionInfo info, Iterable<? extends E> actual, Condition<? super E> condition)
      Assert that each element of given Iterable not satisfies the given condition.
      Parameters:
      info - contains information about the assertion.
      actual - the given Iterable.
      condition - the given Condition.
      Throws:
      NullPointerException - if the given condition is null.
      AssertionError - if an element cannot be cast to E.
      AssertionError - if one or more elements satisfy the given condition.
    • assertAreAtLeast

      public <E> void assertAreAtLeast(AssertionInfo info, Iterable<? extends E> actual, int times, Condition<? super E> condition)
      Assert that there are at least n elements in the actual Iterable satisfying the given condition.
      Parameters:
      info - contains information about the assertion.
      actual - the given Iterable.
      times - the minimum number of times the condition should be verified.
      condition - the given Condition.
      Throws:
      NullPointerException - if the given condition is null.
      AssertionError - if an element cannot be cast to E.
      AssertionError - if the number of elements satisfying the given condition is < n.
    • conditionIsSatisfiedAtLeastNTimes

      private <E> boolean conditionIsSatisfiedAtLeastNTimes(Iterable<? extends E> actual, int n, Condition<? super E> condition)
    • assertAreAtMost

      public <E> void assertAreAtMost(AssertionInfo info, Iterable<? extends E> actual, int n, Condition<? super E> condition)
      Assert that there are at most n elements in the actual Iterable satisfying the given condition.
      Parameters:
      info - contains information about the assertion.
      actual - the given Iterable.
      n - the number of times the condition should be at most verified.
      condition - the given Condition.
      Throws:
      NullPointerException - if the given condition is null.
      AssertionError - if an element cannot be cast to E.
      AssertionError - if the number of elements satisfying the given condition is > n.
    • conditionIsSatisfiedAtMostNTimes

      private <E> boolean conditionIsSatisfiedAtMostNTimes(Iterable<? extends E> actual, Condition<? super E> condition, int n)
    • assertAreExactly

      public <E> void assertAreExactly(AssertionInfo info, Iterable<? extends E> actual, int times, Condition<? super E> condition)
      Verifies that there are exactly n elements in the actual Iterable satisfying the given condition.
      Parameters:
      info - contains information about the assertion.
      actual - the given Iterable.
      times - the exact number of times the condition should be verified.
      condition - the given Condition.
      Throws:
      NullPointerException - if the given condition is null.
      AssertionError - if an element cannot be cast to E.
      AssertionError - if the number of elements satisfying the given condition is ≠ n.
    • conditionIsSatisfiedNTimes

      private <E> boolean conditionIsSatisfiedNTimes(Iterable<? extends E> actual, Condition<? super E> condition, int times)
    • assertHaveAtLeast

      public <E> void assertHaveAtLeast(AssertionInfo info, Iterable<? extends E> actual, int times, Condition<? super E> condition)
      An alias method of assertAreAtLeast(AssertionInfo, Iterable, int, Condition) to provide a richer fluent api (same logic, only error message differs).
    • assertHaveAtMost

      public <E> void assertHaveAtMost(AssertionInfo info, Iterable<? extends E> actual, int times, Condition<? super E> condition)
      An alias method of assertAreAtMost(AssertionInfo, Iterable, int, Condition) to provide a richer fluent api (same logic, only error message differs).
    • assertHaveExactly

      public <E> void assertHaveExactly(AssertionInfo info, Iterable<? extends E> actual, int times, Condition<? super E> condition)
      An alias method of assertAreExactly(AssertionInfo, Iterable, int, Condition) to provide a richer fluent api (same logic, only error message differs).
    • assertContainsAll

      public void assertContainsAll(AssertionInfo info, Iterable<?> actual, Iterable<?> other)
      Asserts that the given Iterable contains all the elements of the other Iterable, in any order.
      Parameters:
      info - contains information about the assertion.
      actual - the given Iterable.
      other - the other Iterable.
      Throws:
      NullPointerException - if Iterable is null.
      AssertionError - if the given Iterable is null.
      AssertionError - if the given Iterable does not contain all the elements of the other Iterable, in any order.
    • assertContainsExactly

      public void assertContainsExactly(AssertionInfo info, Iterable<?> actual, Object[] values)
      Asserts that the given Iterable contains exactly the given values and nothing else, in order.
      Parameters:
      info - contains information about the assertion.
      actual - the given Iterable.
      values - the values that are expected to be in the given Iterable in order.
      Throws:
      NullPointerException - if the array of values is null.
      AssertionError - if the given Iterable is null.
      AssertionError - if the given Iterable does not contain the given values or if the given Iterable contains values that are not in the given array, in order.
    • assertAllSatisfy

      public <E> void assertAllSatisfy(AssertionInfo info, Iterable<? extends E> actual, Consumer<? super E> requirements)
    • assertAnySatisfy

      public <E> void assertAnySatisfy(AssertionInfo info, Iterable<? extends E> actual, Consumer<? super E> requirements)
    • assertAllMatch

      public <E> void assertAllMatch(AssertionInfo info, Iterable<? extends E> actual, Predicate<? super E> predicate, PredicateDescription predicateDescription)
    • assertNoneMatch

      public <E> void assertNoneMatch(AssertionInfo info, Iterable<? extends E> actual, Predicate<? super E> predicate, PredicateDescription predicateDescription)
    • assertContainsExactlyInAnyOrder

      public void assertContainsExactlyInAnyOrder(AssertionInfo info, Iterable<?> actual, Object[] values)
    • assertNotNull

      void assertNotNull(AssertionInfo info, Iterable<?> actual)
    • actualDoesNotEndWithSequence

      private AssertionError actualDoesNotEndWithSequence(AssertionInfo info, Iterable<?> actual, Object[] sequence)
    • notSatisfyingCondition

      private <E> List<E> notSatisfyingCondition(Iterable<? extends E> actual, Condition<? super E> condition)
    • satisfiesCondition

      private <E> List<E> satisfiesCondition(Iterable<? extends E> actual, Condition<? super E> condition)
    • checkIsNotEmptySequence

      private static void checkIsNotEmptySequence(Object[] sequence)
    • checkIsNotNullSequence

      private static void checkIsNotNullSequence(Object sequence)
    • checkIsNotEmptySubsequence

      private static void checkIsNotEmptySubsequence(Object[] subsequence)
    • checkIsNotNullSubsequence

      private static void checkIsNotNullSubsequence(Object subsequence)