org.hamcrest.collection
Class IsIterableContainingInAnyOrder<T>

java.lang.Object
  extended by org.hamcrest.BaseMatcher<T>
      extended by org.hamcrest.TypeSafeDiagnosingMatcher<java.lang.Iterable<? extends T>>
          extended by 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
IsIterableContainingInAnyOrder(java.util.Collection<Matcher<? super T>> matchers)
           
 
Method Summary
static
<T> Matcher<java.lang.Iterable<? extends T>>
containsInAnyOrder(java.util.Collection<Matcher<? super T>> itemMatchers)
          Creates an order agnostic matcher for Iterables 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
<E> Matcher<java.lang.Iterable<? extends E>>
containsInAnyOrder(Matcher<? super E> itemMatcher)
          Deprecated. use contains(Matcher itemMatcher) instead
static
<T> Matcher<java.lang.Iterable<? extends T>>
containsInAnyOrder(Matcher<? super T>... itemMatchers)
          Creates an order agnostic matcher for Iterables 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 Iterables 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_, 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

@Deprecated
public static <E> Matcher<java.lang.Iterable<? extends E>> containsInAnyOrder(Matcher<? super E> itemMatcher)
Deprecated. use contains(Matcher itemMatcher) instead

Creates a matcher for Iterables that matches when a single pass over the examined Iterable yields a single item that satisfies the specified matcher. For a positive match, the examined iterable must only yield one item.

For example:

assertThat(Arrays.asList("foo"), containsInAnyOrder(equalTo("foo")))

Parameters:
itemMatcher - the matcher that must be satisfied by the single item provided by an examined Iterable

containsInAnyOrder

public static <T> Matcher<java.lang.Iterable<? extends T>> containsInAnyOrder(Matcher<? super T>... itemMatchers)
Creates an order agnostic matcher for Iterables 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

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