• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package org.hamcrest.collection;
2 
3 import org.hamcrest.AbstractMatcherTest;
4 import org.hamcrest.Matcher;
5 
6 import static org.hamcrest.collection.IsArrayContainingInAnyOrder.arrayContainingInAnyOrder;
7 import static org.hamcrest.core.IsEqual.equalTo;
8 
9 public class IsArrayContainingInAnyOrderTest extends AbstractMatcherTest {
10 
11     @SuppressWarnings("unchecked")
12     @Override
createMatcher()13     protected Matcher<?> createMatcher() {
14         return arrayContainingInAnyOrder(equalTo(1), equalTo(2));
15     }
16 
17     @SuppressWarnings("unchecked")
testHasAReadableDescription()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));
21     }
22 
testMatchesItemsInAnyOrder()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});
27     }
28 
29     @SuppressWarnings("unchecked")
testAppliesMatchersInAnyOrder()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});
34     }
35 
testMismatchesItemsInAnyOrder()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});
42     }
43 }
44