IsIterableContainingInRelativeOrder (Hamcrest 2.1 API)
Date: 2018-12-21

org.hamcrest.collection

## Class IsIterableContainingInRelativeOrder<E>

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

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

      public class IsIterableContainingInRelativeOrder<E>
      extends TypeSafeDiagnosingMatcher<java.lang.Iterable<? extends E>>

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `IsIterableContainingInRelativeOrder(java.util.List<Matcher<? super E>> matchers)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static <E> Matcher<java.lang.Iterable<? extends E>>` | `containsInRelativeOrder(E... items)` Creates a matcher for `Iterable`s that matches when a single pass over the examined `Iterable` yields a series of items, that contains items logically equal to the corresponding item in the specified items, in the same relative order For example:
    `static <E> Matcher<java.lang.Iterable<? extends E>>` | `containsInRelativeOrder(java.util.List<Matcher<? super E>> itemMatchers)` Creates a matcher for `Iterable`s that matches when a single pass over the examined `Iterable` yields a series of items, that contains items satisfying the corresponding matcher in the specified list of matchers, in the same relative order.
    `static <E> Matcher<java.lang.Iterable<? extends E>>` | `containsInRelativeOrder(Matcher<? super E>... itemMatchers)` Creates a matcher for `Iterable`s that matches when a single pass over the examined `Iterable` yields a series of items, that each satisfying the corresponding matcher in the specified matchers, in the same relative order.
    `void` | `describeTo(Description description)` Generates a description of the object.
    `protected boolean` | `matchesSafely(java.lang.Iterable<? extends E> iterable, 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

    - #### IsIterableContainingInRelativeOrder

          public IsIterableContainingInRelativeOrder(java.util.List<Matcher<? super E>> matchers)

  - ### Method Detail

    - #### matchesSafely

          protected boolean matchesSafely(java.lang.Iterable<? extends E> iterable,
                                          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 E>>`

    - #### 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.

    - #### containsInRelativeOrder

          @SafeVarargs
          public static <E> Matcher<java.lang.Iterable<? extends E>> containsInRelativeOrder(E... items)

      Creates a matcher for `Iterable`s that matches when a single pass over the examined `Iterable` yields a series of items, that contains items logically equal to the corresponding item in the specified items, in the same relative order For example:

          assertThat(Arrays.asList("a", "b", "c", "d", "e"), containsInRelativeOrder("b", "d"))

      Parameters:
        `items` - the items that must be contained within items provided by an examined `Iterable` in the same relative order

    - #### containsInRelativeOrder

          @SafeVarargs
          public static <E> Matcher<java.lang.Iterable<? extends E>> containsInRelativeOrder(Matcher<? super E>... itemMatchers)

      Creates a matcher for `Iterable`s that matches when a single pass over the examined `Iterable` yields a series of items, that each satisfying the corresponding matcher in the specified matchers, in the same relative order. For example:

          assertThat(Arrays.asList("a", "b", "c", "d", "e"), containsInRelativeOrder(equalTo("b"), equalTo("d")))

      Parameters:
        `itemMatchers` - the matchers that must be satisfied by the items provided by an examined `Iterable` in the same relative order

    - #### containsInRelativeOrder

          public static <E> Matcher<java.lang.Iterable<? extends E>> containsInRelativeOrder(java.util.List<Matcher<? super E>> itemMatchers)

      Creates a matcher for `Iterable`s that matches when a single pass over the examined `Iterable` yields a series of items, that contains items satisfying the corresponding matcher in the specified list of matchers, in the same relative order. For example:

          assertThat(Arrays.asList("a", "b", "c", "d", "e"), contains(Arrays.asList(equalTo("b"), equalTo("d"))))

      Parameters:
        `itemMatchers` - a list of matchers, each of which must be satisfied by the items provided by an examined `Iterable` in the same relative order