Class ArrayMatching

java.lang.Object
org.hamcrest.collection.ArrayMatching

public class ArrayMatching extends Object
Collected helper code for converting matchers between lists and iterables.
  • Method Summary

    Modifier and Type
    Method
    Description
    static <E> Matcher<E[]>
    arrayContaining(E... items)
    Creates a matcher for arrays that matches when each item in the examined array is logically equal to the corresponding item in the specified items.
    static <E> Matcher<E[]>
    arrayContaining(List<Matcher<? super E>> itemMatchers)
    Creates a matcher for arrays that matches when each item in the examined array satisfies the corresponding matcher in the specified list of matchers.
    static <E> Matcher<E[]>
    arrayContaining(Matcher<? super E>... itemMatchers)
    Creates a matcher for arrays that matches when each item in the examined array satisfies the corresponding matcher in the specified matchers.
    static <E> Matcher<E[]>
    Creates an order agnostic matcher for arrays that matches when each item in the examined array is logically equal to one item anywhere in the specified items.
    static <E> Matcher<E[]>
    arrayContainingInAnyOrder(Collection<Matcher<? super E>> itemMatchers)
    Creates an order agnostic matcher for arrays that matches when each item in the examined array satisfies one matcher anywhere in the specified collection of matchers.
    static <E> Matcher<E[]>
    arrayContainingInAnyOrder(Matcher<? super E>... itemMatchers)
    Creates an order agnostic matcher for arrays that matches when each item in the examined array satisfies one matcher anywhere in the specified matchers.
    static <E> List<Matcher<? super E>>
    asEqualMatchers(E[] items)
    Converts item array to corresponding array of equalTo matchers
    static <T> Matcher<T[]>
    hasItemInArray(Matcher<? super T> elementMatcher)
    Creates a matcher for arrays that matches when the examined array contains at least one item that is matched by the specified elementMatcher.
    static <T> Matcher<T[]>
    hasItemInArray(T element)
    A shortcut to the frequently used hasItemInArray(equalTo(x)).

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • hasItemInArray

      public static <T> Matcher<T[]> hasItemInArray(Matcher<? super T> elementMatcher)
      Creates a matcher for arrays that matches when the examined array contains at least one item that is matched by the specified elementMatcher. Whilst matching, the traversal of the examined array will stop as soon as a matching element is found. For example:
      assertThat(new String[] {"foo", "bar"}, hasItemInArray(startsWith("ba")))
      Type Parameters:
      T - the matcher type.
      Parameters:
      elementMatcher - the matcher to apply to elements in examined arrays
      Returns:
      The matcher.
    • hasItemInArray

      public static <T> Matcher<T[]> hasItemInArray(T element)
      A shortcut to the frequently used hasItemInArray(equalTo(x)). For example:
      assertThat(hasItemInArray(x))
      instead of:
      assertThat(hasItemInArray(equalTo(x)))
      Type Parameters:
      T - the matcher type.
      Parameters:
      element - the element that should be present in examined arrays
      Returns:
      The matcher.
    • arrayContainingInAnyOrder

      @SafeVarargs public static <E> Matcher<E[]> arrayContainingInAnyOrder(Matcher<? super E>... itemMatchers)

      Creates an order agnostic matcher for arrays that matches when each item in the examined array satisfies one matcher anywhere in the specified matchers. For a positive match, the examined array 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 array.

      For example:

      assertThat(new String[]{"foo", "bar"}, arrayContainingInAnyOrder(equalTo("bar"), equalTo("foo")))
      Type Parameters:
      E - the matcher type.
      Parameters:
      itemMatchers - a list of matchers, each of which must be satisfied by an entry in an examined array
      Returns:
      The matcher.
    • arrayContainingInAnyOrder

      public static <E> Matcher<E[]> arrayContainingInAnyOrder(Collection<Matcher<? super E>> itemMatchers)

      Creates an order agnostic matcher for arrays that matches when each item in the examined array satisfies one matcher anywhere in the specified collection of matchers. For a positive match, the examined array 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 array.

      For example:

      assertThat(new String[]{"foo", "bar"}, arrayContainingInAnyOrder(Arrays.asList(equalTo("bar"), equalTo("foo"))))
      Type Parameters:
      E - the matcher type.
      Parameters:
      itemMatchers - a list of matchers, each of which must be satisfied by an item provided by an examined array
      Returns:
      The matcher.
    • arrayContainingInAnyOrder

      @SafeVarargs public static <E> Matcher<E[]> arrayContainingInAnyOrder(E... items)

      Creates an order agnostic matcher for arrays that matches when each item in the examined array is logically equal to one item anywhere in the specified items. For a positive match, the examined array 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 array.

      For example:

      assertThat(new String[]{"foo", "bar"}, containsInAnyOrder("bar", "foo"))
      Type Parameters:
      E - the matcher type.
      Parameters:
      items - the items that must equal the entries of an examined array, in any order
      Returns:
      The matcher.
    • arrayContaining

      @SafeVarargs public static <E> Matcher<E[]> arrayContaining(E... items)
      Creates a matcher for arrays that matches when each item in the examined array is logically equal to the corresponding item in the specified items. For a positive match, the examined array must be of the same length as the number of specified items. For example:
      assertThat(new String[]{"foo", "bar"}, contains("foo", "bar"))
      Type Parameters:
      E - the matcher type.
      Parameters:
      items - the items that must equal the items within an examined array
      Returns:
      The matcher.
    • arrayContaining

      @SafeVarargs public static <E> Matcher<E[]> arrayContaining(Matcher<? super E>... itemMatchers)
      Creates a matcher for arrays that matches when each item in the examined array satisfies the corresponding matcher in the specified matchers. For a positive match, the examined array must be of the same length as the number of specified matchers. For example:
      assertThat(new String[]{"foo", "bar"}, arrayContaining(equalTo("foo"), equalTo("bar")))
      Type Parameters:
      E - the matcher type.
      Parameters:
      itemMatchers - the matchers that must be satisfied by the items in the examined array
      Returns:
      The matcher.
    • arrayContaining

      public static <E> Matcher<E[]> arrayContaining(List<Matcher<? super E>> itemMatchers)
      Creates a matcher for arrays that matches when each item in the examined array satisfies the corresponding matcher in the specified list of matchers. For a positive match, the examined array must be of the same length as the specified list of matchers. For example:
      assertThat(new String[]{"foo", "bar"}, arrayContaining(Arrays.asList(equalTo("foo"), equalTo("bar"))))
      Type Parameters:
      E - the matcher type.
      Parameters:
      itemMatchers - a list of matchers, each of which must be satisfied by the corresponding item in an examined array
      Returns:
      The matcher.
    • asEqualMatchers

      public static <E> List<Matcher<? super E>> asEqualMatchers(E[] items)
      Converts item array to corresponding array of equalTo matchers
      Type Parameters:
      E - type of array items
      Parameters:
      items - items to convert
      Returns:
      list of corresponding equaTo matchers