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