How to check if collection contains items in given order using Hamcrest

collections, hamcrest, java

Solution

You can use `contains` matcher instead, but you probably need to use latest version of Hamcrest. That method checks the order.

assertThat(list, contains("foo", "boo"));

You can also try using `containsInAnyOrder` if order does not matter to you.

That's the code for `contains` matcher:

  public static <E> Matcher<Iterable<? extends E>> contains(List<Matcher<? super E>> itemMatchers)
  {
    return IsIterableContainingInOrder.contains(itemMatchers);
  }

Problem

How to check using Hamcrest if given collection is containing given items in given order? I tried `hasItems` but it simply ignores the order. ``` List<String> list = Arrays.asList("foo", "bar", "boo"); assertThat(list, hasItems("foo", "boo")); //I want this to fail, because the order is different than in "list" assertThat(list, hasItems("boo", "foo")); ```

Original source

Related problems