1package org.hamcrest.collection;
2
3import org.hamcrest.AbstractMatcherTest;
4import org.hamcrest.Matcher;
5import org.hamcrest.StringDescription;
6
7import java.util.Arrays;
8import java.util.Collection;
9
10public class IsInTest extends AbstractMatcherTest {
11    String[] elements = {"a", "b", "c"};
12
13    @Override
14    protected Matcher<?> createMatcher() {
15        return new IsIn<String>(elements);
16    }
17
18    public void testReturnsTrueIfArgumentIsInCollection() {
19        Collection<String> collection = Arrays.asList(elements);
20        Matcher<String> isIn = new IsIn<String>(collection);
21
22        assertMatches("a", isIn, "a");
23        assertMatches("b", isIn, "b");
24        assertMatches("c", isIn, "c");
25        assertDoesNotMatch("d", isIn, "d");
26    }
27
28    public void testReturnsTrueIfArgumentIsInArray() {
29        Matcher<String> isIn = new IsIn<String>(elements);
30
31        assertMatches("a", isIn, "a");
32        assertMatches("b", isIn, "b");
33        assertMatches("c", isIn, "c");
34        assertDoesNotMatch("d", isIn, "d");
35    }
36
37    public void testHasReadableDescription() {
38        Matcher<String> isIn = new IsIn<String>(elements);
39
40        assertEquals("description",
41            "one of {\"a\", \"b\", \"c\"}",
42            StringDescription.toString(isIn));
43    }
44}
45