Class IsIterableContainingInAnyOrder<T>

java.lang.Object
org.hamcrest.BaseMatcher<Iterable<? extends T>>
org.hamcrest.TypeSafeDiagnosingMatcher<Iterable<? extends T>>
org.hamcrest.collection.IsIterableContainingInAnyOrder<T>
Type Parameters:
T - the type of items in the iterable.
All Implemented Interfaces:
Matcher<Iterable<? extends T>>, SelfDescribing

public class IsIterableContainingInAnyOrder<T> extends TypeSafeDiagnosingMatcher<Iterable<? extends T>>
Tests if an iterable contains matching elements in any order.
  • Constructor Details

  • Method Details

    • matchesSafely

      protected boolean matchesSafely(Iterable<? extends T> items, Description mismatchDescription)
      Description copied from class: TypeSafeDiagnosingMatcher
      Subclasses should implement this. The item will already have been checked for the specific type and will never be null.
      Specified by:
      matchesSafely in class TypeSafeDiagnosingMatcher<Iterable<? extends T>>
      Parameters:
      items - the item.
      mismatchDescription - the mismatch description.
      Returns:
      boolean true/false depending if item matches matcher.
    • describeTo

      public void describeTo(Description description)
      Description copied from interface: SelfDescribing
      Generates a description of the object. The description may be part of a description of a larger object of which this is just a component, so it should be worded appropriately.
      Parameters:
      description - The description to be built or appended to.
    • containsInAnyOrder

      @SafeVarargs public static <T> Matcher<Iterable<? extends T>> containsInAnyOrder(Matcher<? super T>... itemMatchers)

      Creates an order agnostic matcher for Iterables that matches when a single pass over the examined Iterable yields a series of items, each satisfying one matcher anywhere in the specified matchers. For a positive match, the examined iterable must be of the same length as the number of specified matchers.

      N.B. each of the specified matchers will only be used once during a given examination, so be careful when specifying matchers that may be satisfied by more than one entry in an examined iterable.

      For example:

      assertThat(Arrays.asList("foo", "bar"), containsInAnyOrder(equalTo("bar"), equalTo("foo")))
      Type Parameters:
      T - the matcher type.
      Parameters:
      itemMatchers - a list of matchers, each of which must be satisfied by an item provided by an examined Iterable
      Returns:
      The matcher.
    • containsInAnyOrder

      @SafeVarargs public static <T> Matcher<Iterable<? extends T>> containsInAnyOrder(T... items)

      Creates an order agnostic matcher for Iterables that matches when a single pass over the examined Iterable yields a series of items, each logically equal to one item anywhere in the specified items. For a positive match, the examined iterable must be of the same length as the number of specified items.

      N.B. each of the specified items will only be used once during a given examination, so be careful when specifying items that may be equal to more than one entry in an examined iterable.

      For example:

      assertThat(Arrays.asList("foo", "bar"), containsInAnyOrder("bar", "foo"))
      Type Parameters:
      T - the matcher type.
      Parameters:
      items - the items that must equal the items provided by an examined Iterable in any order
      Returns:
      The matcher.
    • containsInAnyOrder

      public static <T> Matcher<Iterable<? extends T>> containsInAnyOrder(Collection<Matcher<? super T>> itemMatchers)

      Creates an order agnostic matcher for Iterables that matches when a single pass over the examined Iterable yields a series of items, each satisfying one matcher anywhere in the specified collection of matchers. For a positive match, the examined iterable must be of the same length as the specified collection of matchers.

      N.B. each matcher in the specified collection will only be used once during a given examination, so be careful when specifying matchers that may be satisfied by more than one entry in an examined iterable.

      For example:

      assertThat(Arrays.asList("foo", "bar"), containsInAnyOrder(Arrays.asList(equalTo("bar"), equalTo("foo"))))
      Type Parameters:
      T - the matcher type.
      Parameters:
      itemMatchers - a list of matchers, each of which must be satisfied by an item provided by an examined Iterable
      Returns:
      The matcher.