1package org.hamcrest.core; 2 3import org.hamcrest.AbstractMatcherTest; 4import org.hamcrest.Matcher; 5 6import static org.hamcrest.core.StringContains.containsString; 7import static org.hamcrest.core.StringContains.containsStringIgnoringCase; 8 9 10public class StringContainsTest extends AbstractMatcherTest { 11 static final String EXCERPT = "EXCERPT"; 12 final Matcher<String> stringContains = containsString(EXCERPT); 13 14 @Override 15 protected Matcher<?> createMatcher() { 16 return stringContains; 17 } 18 19 public void testMatchesSubstrings() { 20 assertMatches(stringContains, EXCERPT + "END"); 21 assertMatches(stringContains, "START" + EXCERPT); 22 assertMatches(stringContains, "START" + EXCERPT + "END"); 23 assertMatches(stringContains, EXCERPT); 24 assertDoesNotMatch(stringContains, EXCERPT.toLowerCase()); 25 assertMatches(stringContains, EXCERPT + EXCERPT); 26 assertDoesNotMatch(stringContains, "XC"); 27 28 assertMismatchDescription("was \"Something else\"", stringContains, "Something else"); 29 assertDescription("a string containing \"EXCERPT\"", stringContains); 30 } 31 32 public void testMatchesSubstringsIgnoringCase() { 33 final Matcher<String> ignoringCase = containsStringIgnoringCase("ExCert"); 34 assertMatches(ignoringCase, "eXcERT" + "END"); 35 assertMatches(ignoringCase, "START" + "EXCert"); 36 assertMatches(ignoringCase, "START" + "excERT" + "END"); 37 assertMatches(ignoringCase, "eXCert" + "excErt"); 38 assertDoesNotMatch(ignoringCase, "xc"); 39 40 assertMismatchDescription("was \"Something else\"", ignoringCase, "Something else"); 41 assertDescription("a string containing \"ExCert\" ignoring case", ignoringCase); 42 } 43} 44