1f5e9a2415ec42c425c2bb17db46f2a9649992d80Brett Chabotpackage org.hamcrest.collection; 2f5e9a2415ec42c425c2bb17db46f2a9649992d80Brett Chabot 3f5e9a2415ec42c425c2bb17db46f2a9649992d80Brett Chabotimport org.hamcrest.BaseMatcher; 4f5e9a2415ec42c425c2bb17db46f2a9649992d80Brett Chabotimport org.hamcrest.Description; 5f5e9a2415ec42c425c2bb17db46f2a9649992d80Brett Chabotimport org.hamcrest.Matcher; 6f5e9a2415ec42c425c2bb17db46f2a9649992d80Brett Chabot 7c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffinimport java.util.Arrays; 8c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffinimport java.util.Collection; 9c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin 10f5e9a2415ec42c425c2bb17db46f2a9649992d80Brett Chabotpublic class IsIn<T> extends BaseMatcher<T> { 11f5e9a2415ec42c425c2bb17db46f2a9649992d80Brett Chabot private final Collection<T> collection; 12f5e9a2415ec42c425c2bb17db46f2a9649992d80Brett Chabot 13f5e9a2415ec42c425c2bb17db46f2a9649992d80Brett Chabot public IsIn(Collection<T> collection) { 14f5e9a2415ec42c425c2bb17db46f2a9649992d80Brett Chabot this.collection = collection; 15f5e9a2415ec42c425c2bb17db46f2a9649992d80Brett Chabot } 16f5e9a2415ec42c425c2bb17db46f2a9649992d80Brett Chabot 17f5e9a2415ec42c425c2bb17db46f2a9649992d80Brett Chabot public IsIn(T[] elements) { 18f5e9a2415ec42c425c2bb17db46f2a9649992d80Brett Chabot collection = Arrays.asList(elements); 19f5e9a2415ec42c425c2bb17db46f2a9649992d80Brett Chabot } 20f5e9a2415ec42c425c2bb17db46f2a9649992d80Brett Chabot 21c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin @SuppressWarnings("SuspiciousMethodCalls") 22c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin @Override 23f5e9a2415ec42c425c2bb17db46f2a9649992d80Brett Chabot public boolean matches(Object o) { 24f5e9a2415ec42c425c2bb17db46f2a9649992d80Brett Chabot return collection.contains(o); 25f5e9a2415ec42c425c2bb17db46f2a9649992d80Brett Chabot } 26f5e9a2415ec42c425c2bb17db46f2a9649992d80Brett Chabot 27c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin @Override 28f5e9a2415ec42c425c2bb17db46f2a9649992d80Brett Chabot public void describeTo(Description buffer) { 29f5e9a2415ec42c425c2bb17db46f2a9649992d80Brett Chabot buffer.appendText("one of "); 30f5e9a2415ec42c425c2bb17db46f2a9649992d80Brett Chabot buffer.appendValueList("{", ", ", "}", collection); 31f5e9a2415ec42c425c2bb17db46f2a9649992d80Brett Chabot } 32f5e9a2415ec42c425c2bb17db46f2a9649992d80Brett Chabot 33c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin /** 34c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * Creates a matcher that matches when the examined object is found within the 35c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * specified collection. 36c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * For example: 37c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * <pre>assertThat("foo", isIn(Arrays.asList("bar", "foo")))</pre> 38c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * 39c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * @deprecated use is(in(...)) instead 40c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * 41c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * @param collection 42c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * the collection in which matching items must be found 43c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * 44c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin */ 45c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin @Deprecated 46f5e9a2415ec42c425c2bb17db46f2a9649992d80Brett Chabot public static <T> Matcher<T> isIn(Collection<T> collection) { 47c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin return in(collection); 48f5e9a2415ec42c425c2bb17db46f2a9649992d80Brett Chabot } 49f5e9a2415ec42c425c2bb17db46f2a9649992d80Brett Chabot 50c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin /** 51c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * Creates a matcher that matches when the examined object is found within the 52c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * specified collection. 53c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * For example: 54c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * <pre>assertThat("foo", is(in(Arrays.asList("bar", "foo"))))</pre> 55c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * 56c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * @param collection 57c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * the collection in which matching items must be found 58c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * 59c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin */ 60c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin public static <T> Matcher<T> in(Collection<T> collection) { 61c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin return new IsIn<T>(collection); 62c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin } 63c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin 64c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin /** 65c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * Creates a matcher that matches when the examined object is found within the 66c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * specified array. 67c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * For example: 68c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * <pre>assertThat("foo", isIn(new String[]{"bar", "foo"}))</pre> 69c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * 70c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * @deprecated use is(in(...)) instead 71c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * 72c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * @param elements 73c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * the array in which matching items must be found 74c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * 75c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin */ 76c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin @Deprecated 77f5e9a2415ec42c425c2bb17db46f2a9649992d80Brett Chabot public static <T> Matcher<T> isIn(T[] elements) { 78c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin return in(elements); 79c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin } 80c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin 81c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin /** 82c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * Creates a matcher that matches when the examined object is found within the 83c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * specified array. 84c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * For example: 85c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * <pre>assertThat("foo", is(in(new String[]{"bar", "foo"})))</pre> 86c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * 87c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * @param elements 88c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * the array in which matching items must be found 89c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * 90c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin */ 91c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin public static <T> Matcher<T> in(T[] elements) { 92f5e9a2415ec42c425c2bb17db46f2a9649992d80Brett Chabot return new IsIn<T>(elements); 93f5e9a2415ec42c425c2bb17db46f2a9649992d80Brett Chabot } 94f5e9a2415ec42c425c2bb17db46f2a9649992d80Brett Chabot 95c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin /** 96c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * Creates a matcher that matches when the examined object is equal to one of the 97c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * specified elements. 98c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * For example: 99c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * <pre>assertThat("foo", isOneOf("bar", "foo"))</pre> 100c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * 101c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * @deprecated use is(oneOf(...)) instead 102c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * 103c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * @param elements 104c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * the elements amongst which matching items will be found 105c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * 106c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin */ 107c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin @Deprecated 108f5e9a2415ec42c425c2bb17db46f2a9649992d80Brett Chabot public static <T> Matcher<T> isOneOf(T... elements) { 109c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin return oneOf(elements); 110c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin } 111c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin 112c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin /** 113c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * Creates a matcher that matches when the examined object is equal to one of the 114c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * specified elements. 115c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * For example: 116c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * <pre>assertThat("foo", is(oneOf("bar", "foo")))</pre> 117c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * 118c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * @param elements 119c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * the elements amongst which matching items will be found 120c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin * 121c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin */ 122c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin public static <T> Matcher<T> oneOf(T... elements) { 123c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin return in(elements); 124f5e9a2415ec42c425c2bb17db46f2a9649992d80Brett Chabot } 125f5e9a2415ec42c425c2bb17db46f2a9649992d80Brett Chabot} 126