blob: 275984ce77ecb31746f8e713e007e09c66fd0d08 [file] [log] [blame]
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});
// }
}