1package org.hamcrest.core;
2
3import org.hamcrest.Matcher;
4import org.junit.Test;
5
6import java.util.ArrayList;
7
8import static java.util.Arrays.asList;
9import static org.hamcrest.AbstractMatcherTest.*;
10import static org.hamcrest.core.StringContains.containsString;
11
12public final class EveryTest {
13
14    private final Matcher<Iterable<? extends String>> matcher = Every.everyItem(containsString("a"));
15
16    @Test public void
17    copesWithNullsAndUnknownTypes() {
18        assertNullSafe(matcher);
19        assertUnknownTypeSafe(matcher);
20    }
21
22    @Test public void
23    matchesOnlyWhenEveryItemMatches() {
24        assertMatches(matcher, asList("AaA", "BaB", "CaC"));
25        assertDoesNotMatch(matcher, asList("AaA", "BXB", "CaC"));
26    }
27
28    @Test public void
29    matchesEmptyLists() {
30        assertMatches("didn't match empty list", matcher, new ArrayList<String>());
31    }
32
33    @Test public void
34    describesItself() {
35        assertDescription("every item is a string containing \"a\"", matcher);
36    }
37
38    @Test public void
39    describesAMismatch() {
40        assertMismatchDescription("an item was \"BXB\"", matcher, asList("BXB"));
41    }
42}
43
44