IsIterableContainingInAnyOrder (Hamcrest 2.2 API)
Date: 2019-10-17

org.hamcrest.collection

## Class IsIterableContainingInAnyOrder<T>

- java.lang.Object
- - org.hamcrest.BaseMatcher<T>
  - - org.hamcrest.TypeSafeDiagnosingMatcher<java.lang.Iterable<? extends T>>
    - - org.hamcrest.collection.IsIterableContainingInAnyOrder<T>

- All Implemented Interfaces:
    Matcher<java.lang.Iterable<? extends T>>, SelfDescribing

      public class IsIterableContainingInAnyOrder<T>
      extends TypeSafeDiagnosingMatcher<java.lang.Iterable<? extends T>>

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `IsIterableContainingInAnyOrder(java.util.Collection<Matcher<? super T>> matchers)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static <T> Matcher<java.lang.Iterable<? extends T>>` | `containsInAnyOrder(java.util.Collection<Matcher<? super T>> itemMatchers)` Creates an order agnostic matcher for `Iterable`s 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.
    `static <T> Matcher<java.lang.Iterable<? extends T>>` | `containsInAnyOrder(Matcher<? super T>... itemMatchers)` Creates an order agnostic matcher for `Iterable`s that matches when a single pass over the examined `Iterable` yields a series of items, each satisfying one matcher anywhere in the specified matchers.
    `static <T> Matcher<java.lang.Iterable<? extends T>>` | `containsInAnyOrder(T... items)` Creates an order agnostic matcher for `Iterable`s 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.
    `void` | `describeTo(Description description)` Generates a description of the object.
    `protected boolean` | `matchesSafely(java.lang.Iterable<? extends T> items, Description mismatchDescription)` Subclasses should implement this.

    - ### Methods inherited from class org.hamcrest.TypeSafeDiagnosingMatcher

      `describeMismatch, matches`

    - ### Methods inherited from class org.hamcrest.BaseMatcher

      `_dont_implement_Matcher___instead_extend_BaseMatcher_, isNotNull, toString`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### IsIterableContainingInAnyOrder

          public IsIterableContainingInAnyOrder(java.util.Collection<Matcher<? super T>> matchers)

  - ### Method Detail

    - #### matchesSafely

          protected boolean matchesSafely(java.lang.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<java.lang.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<java.lang.Iterable<? extends T>> containsInAnyOrder(Matcher<? super T>... itemMatchers)

      Creates an order agnostic matcher for `Iterable`s 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<java.lang.Iterable<? extends T>> containsInAnyOrder(T... items)

      Creates an order agnostic matcher for `Iterable`s 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<java.lang.Iterable<? extends T>> containsInAnyOrder(java.util.Collection<Matcher<? super T>> itemMatchers)

      Creates an order agnostic matcher for `Iterable`s 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`