package org.hamcrest.core; import static java.util.Arrays.asList; import static org.hamcrest.AbstractMatcherTest.assertDescription; import static org.hamcrest.AbstractMatcherTest.assertDoesNotMatch; import static org.hamcrest.AbstractMatcherTest.assertMatches; import static org.hamcrest.AbstractMatcherTest.assertMismatchDescription; import static org.hamcrest.AbstractMatcherTest.assertNullSafe; import static org.hamcrest.AbstractMatcherTest.assertUnknownTypeSafe; import static org.hamcrest.core.StringContains.containsString; import java.util.ArrayList; import org.hamcrest.Matcher; import org.junit.Test; public final class EveryTest { private final Matcher<Iterable<String>> matcher = Every.everyItem(containsString("a")); @Test public void copesWithNullsAndUnknownTypes() { assertNullSafe(matcher); assertUnknownTypeSafe(matcher); } @Test public void matchesOnlyWhenEveryItemMatches() { assertMatches(matcher, asList("AaA", "BaB", "CaC")); assertDoesNotMatch(matcher, asList("AaA", "BXB", "CaC")); } @Test public void matchesEmptyLists() { assertMatches("didn't match empty list", matcher, new ArrayList<String>()); } @Test public void describesItself() { assertDescription("every item is a string containing \"a\"", matcher); } @Test public void describesAMismatch() { assertMismatchDescription("an item was \"BXB\"", matcher, asList("BXB")); } }