1
package org.hamcrest.collection;
3
import static org.hamcrest.collection.IsArrayContainingInAnyOrder.arrayContainingInAnyOrder;
4
import static org.hamcrest.core.IsEqual.equalTo;
6
import org.hamcrest.AbstractMatcherTest;
7
import org.hamcrest.Matcher;
9
public class IsArrayContainingInAnyOrderTest extends AbstractMatcherTest {
11
@SuppressWarnings("unchecked")
13
protected Matcher<?> createMatcher() {
14
return arrayContainingInAnyOrder(equalTo(1), equalTo(2));
17
@SuppressWarnings("unchecked")
18
public void testHasAReadableDescription() {
19
assertDescription("[<1>, <2>] in any order", arrayContainingInAnyOrder(equalTo(1), equalTo(2)));
20
assertDescription("[<1>, <2>] in any order", arrayContainingInAnyOrder(1, 2));
23
public void testMatchesItemsInAnyOrder() {
24
assertMatches("in order", arrayContainingInAnyOrder(1, 2, 3), new Integer[] {1, 2, 3});
25
assertMatches("out of order", arrayContainingInAnyOrder(1, 2, 3), new Integer[] {3, 2, 1});
26
assertMatches("single", arrayContainingInAnyOrder(1), new Integer[] {1});
29
@SuppressWarnings("unchecked")
30
public void testAppliesMatchersInAnyOrder() {
31
assertMatches("in order", arrayContainingInAnyOrder(equalTo(1), equalTo(2), equalTo(3)), new Integer[] {1, 2, 3});
32
assertMatches("out of order", arrayContainingInAnyOrder(equalTo(1), equalTo(2), equalTo(3)), new Integer[] {3, 2, 1});
33
assertMatches("single", arrayContainingInAnyOrder(equalTo(1)), new Integer[] {1});
36
public void testMismatchesItemsInAnyOrder() {
37
Matcher<Integer[]> matcher = arrayContainingInAnyOrder(1, 2, 3);
38
assertMismatchDescription("was null", matcher, null);
39
assertMismatchDescription("No item matches: <1>, <2>, <3> in []", matcher, new Integer[] {});
40
assertMismatchDescription("No item matches: <2>, <3> in [<1>]", matcher, new Integer[] {1});
41
assertMismatchDescription("Not matched: <4>", matcher, new Integer[] {4,3,2,1});