Class IsIterableContainingInAnyOrder<T>

java.lang.Object
org.hamcrest.BaseMatcher<T>
org.hamcrest.TypeSafeDiagnosingMatcher<Iterable<? extends T>>
org.hamcrest.collection.IsIterableContainingInAnyOrder<T>
All Implemented Interfaces:
Matcher<Iterable<? extends T>>, SelfDescribing

public class IsIterableContainingInAnyOrder<T> extends TypeSafeDiagnosingMatcher<Iterable<? extends T>>
  • Constructor Details

    • IsIterableContainingInAnyOrder

      public IsIterableContainingInAnyOrder(Collection<Matcher<? super T>> matchers)
  • 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>>
    • describeTo

      public void describeTo(Description description)
      Description copied from interface: SelfDescribing
      Generates a description of the object. The description may be part of a 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")))
      Parameters:
      itemMatchers - a list of matchers, each of which must be satisfied by an item provided by an examined Iterable
    • 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"))
      Parameters:
      items - the items that must equal the items provided by an examined Iterable in any order
    • 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"))))
      Parameters:
      itemMatchers - a list of matchers, each of which must be satisfied by an item provided by an examined Iterable