package org.hamcrest.core; import org.hamcrest.AbstractMatcherTest; import org.hamcrest.Matcher; import static org.hamcrest.core.StringEndsWith.endsWith; import static org.hamcrest.core.StringEndsWith.endsWithIgnoringCase; public class StringEndsWithTest extends AbstractMatcherTest { static final String EXCERPT = "EXCERPT"; final Matcher stringEndsWith = endsWith(EXCERPT); @Override protected Matcher createMatcher() { return stringEndsWith; } public void testMatchesSubstringAtEnd() { assertDoesNotMatch(stringEndsWith, EXCERPT + "END"); assertMatches(stringEndsWith, "START" + EXCERPT); assertMatches(stringEndsWith, EXCERPT); assertDoesNotMatch(stringEndsWith, EXCERPT.toLowerCase()); assertDoesNotMatch(stringEndsWith, "START" + EXCERPT + "END"); assertMatches(stringEndsWith, EXCERPT + EXCERPT); assertDoesNotMatch(stringEndsWith, "EXCER"); assertMismatchDescription("was \"Something else\"", stringEndsWith, "Something else"); assertDescription("a string ending with \"EXCERPT\"", stringEndsWith); } public void testMatchesSubstringAtEndIngoringCase() { final Matcher ignoringCase = endsWithIgnoringCase("EXCERpt"); assertDoesNotMatch(ignoringCase, "eXCErpt" + "END"); assertMatches(ignoringCase, "START" + "EXceRpt"); assertMatches(ignoringCase, "EXcerPT"); assertDoesNotMatch(ignoringCase, "START" + "ExcERpt" + "END"); assertMatches(ignoringCase, "exCERpt" + "EXCerPt"); assertDoesNotMatch(ignoringCase, "ExcER"); assertMismatchDescription("was \"Something else\"", ignoringCase, "Something else"); assertDescription("a string ending with \"EXCERpt\" ignoring case", ignoringCase); } }