Class IsIterableContainingInRelativeOrder<E>

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

public class IsIterableContainingInRelativeOrder<E> extends TypeSafeDiagnosingMatcher<Iterable<? extends E>>
Tests if an iterable contains matching elements in relative order.
  • Constructor Details

  • Method Details

    • matchesSafely

      protected boolean matchesSafely(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<Iterable<? extends E>>
      Parameters:
      iterable - 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.
    • containsInRelativeOrder

      @SafeVarargs public static <E> Matcher<Iterable<? extends E>> containsInRelativeOrder(E... items)
      Creates a matcher for Iterables 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"))
      Type Parameters:
      E - the matcher type.
      Parameters:
      items - the items that must be contained within items provided by an examined Iterable in the same relative order
      Returns:
      The matcher.
    • containsInRelativeOrder

      @SafeVarargs public static <E> Matcher<Iterable<? extends E>> containsInRelativeOrder(Matcher<? super E>... itemMatchers)
      Creates a matcher for Iterables 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")))
      Type Parameters:
      E - the matcher type.
      Parameters:
      itemMatchers - the matchers that must be satisfied by the items provided by an examined Iterable in the same relative order
      Returns:
      The matcher.
    • containsInRelativeOrder

      public static <E> Matcher<Iterable<? extends E>> containsInRelativeOrder(List<Matcher<? super E>> itemMatchers)
      Creates a matcher for Iterables 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"))))
      Type Parameters:
      E - the matcher type.
      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
      Returns:
      The matcher.