| package org.hamcrest.collection; |
| |
| import org.hamcrest.AbstractMatcherTest; |
| import org.hamcrest.Matcher; |
| |
| import static org.hamcrest.collection.IsArrayContaining.hasItemInArray; |
| |
| public class IsArrayContainingTest extends AbstractMatcherTest { |
| |
| @Override |
| protected Matcher<?> createMatcher() { |
| return hasItemInArray("irrelevant"); |
| } |
| |
| public void testMatchesAnArrayThatContainsAnElementMatchingTheGivenMatcher() { |
| assertMatches("should matches array that contains 'a'", |
| hasItemInArray("a"), new String[]{"a", "b", "c"}); |
| } |
| |
| public void testDoesNotMatchAnArrayThatDoesntContainAnElementMatchingTheGivenMatcher() { |
| assertDoesNotMatch("should not matches array that doesn't contain 'a'", |
| hasItemInArray("a"), new String[]{"b", "c"}); |
| assertDoesNotMatch("should not matches empty array", |
| hasItemInArray("a"), new String[0]); |
| } |
| |
| public void testDoesNotMatchNull() { |
| assertDoesNotMatch("should not matches null", |
| hasItemInArray("a"), null); |
| } |
| |
| public void testHasAReadableDescription() { |
| assertDescription("an array containing \"a\"", hasItemInArray("a")); |
| } |
| |
| // Remaining code no longer compiles, thanks to generics. I think that's a good thing, but |
| // I still need to investigate how this behaves with code that doesn't use generics. |
| // I expect ClassCastExceptions will be thrown. |
| // -Joe. |
| |
| // public void testDoesNotMatchObjectThatIsNotAnArray() { |
| // assertDoesNotMatch("should not matches empty list", |
| // arrayContaining("a"), "not a collection"); |
| // } |
| |
| // public void testMatchesPrimitiveArrayElements() { |
| // assertMatches("boolean", arrayContaining(true), new boolean[]{true, false}); |
| // assertDoesNotMatch("boolean", arrayContaining(false), new boolean[]{false}); |
| // |
| // assertMatches("byte", arrayContaining((byte) 1), new byte[]{1, 2, 3}); |
| // assertDoesNotMatch("byte", arrayContaining((byte) 0), new byte[]{1, 2, 3}); |
| // |
| // assertMatches("char", arrayContaining('a'), new char[]{'a', 'b', 'c'}); |
| // assertDoesNotMatch("char", arrayContaining('z'), new char[]{'a', 'b', 'c'}); |
| // |
| // assertMatches("short", arrayContaining((short) 1), new short[]{1, 2, 3}); |
| // assertDoesNotMatch("short", arrayContaining((short) 0), new short[]{1, 2, 3}); |
| // |
| // assertMatches("int", arrayContaining(1), new int[]{1, 2, 3}); |
| // assertDoesNotMatch("int", arrayContaining(0), new int[]{1, 2, 3}); |
| // |
| // assertMatches("long", arrayContaining(1L), new long[]{1, 2, 3}); |
| // assertDoesNotMatch("long", arrayContaining(0L), new long[]{1, 2, 3}); |
| // |
| // assertMatches("float", arrayContaining(1f), new float[]{1f, 2f, 3f}); |
| // assertDoesNotMatch("float", arrayContaining(0f), new float[]{1f, 2f, 3f}); |
| // |
| // assertMatches("double", arrayContaining(1.0), new double[]{1.0, 2.0, 3.0}); |
| // assertDoesNotMatch("double", arrayContaining(0.0), new double[]{1.0, 2.0, 3.0}); |
| // } |
| |
| } |