1c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffinpackage org.hamcrest.core; 2c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin 3c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffinimport org.hamcrest.AbstractMatcherTest; 4c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffinimport org.hamcrest.Matcher; 5c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin 6c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffinimport static org.hamcrest.core.StringEndsWith.endsWith; 7c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffinimport static org.hamcrest.core.StringEndsWith.endsWithIgnoringCase; 8c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin 9c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin 10c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffinpublic class StringEndsWithTest extends AbstractMatcherTest { 11c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin static final String EXCERPT = "EXCERPT"; 12c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin final Matcher<String> stringEndsWith = endsWith(EXCERPT); 13c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin 14c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin @Override 15c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin protected Matcher<?> createMatcher() { 16c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin return stringEndsWith; 17c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin } 18c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin 19c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin public void testMatchesSubstringAtEnd() { 20c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin assertDoesNotMatch(stringEndsWith, EXCERPT + "END"); 21c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin assertMatches(stringEndsWith, "START" + EXCERPT); 22c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin assertMatches(stringEndsWith, EXCERPT); 23c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin assertDoesNotMatch(stringEndsWith, EXCERPT.toLowerCase()); 24c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin assertDoesNotMatch(stringEndsWith, "START" + EXCERPT + "END"); 25c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin assertMatches(stringEndsWith, EXCERPT + EXCERPT); 26c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin assertDoesNotMatch(stringEndsWith, "EXCER"); 27c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin 28c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin assertMismatchDescription("was \"Something else\"", stringEndsWith, "Something else"); 29c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin assertDescription("a string ending with \"EXCERPT\"", stringEndsWith); 30c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin } 31c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin 32c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin public void testMatchesSubstringAtEndIngoringCase() { 33c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin final Matcher<String> ignoringCase = endsWithIgnoringCase("EXCERpt"); 34c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin assertDoesNotMatch(ignoringCase, "eXCErpt" + "END"); 35c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin assertMatches(ignoringCase, "START" + "EXceRpt"); 36c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin assertMatches(ignoringCase, "EXcerPT"); 37c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin assertDoesNotMatch(ignoringCase, "START" + "ExcERpt" + "END"); 38c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin assertMatches(ignoringCase, "exCERpt" + "EXCerPt"); 39c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin assertDoesNotMatch(ignoringCase, "ExcER"); 40c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin 41c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin assertMismatchDescription("was \"Something else\"", ignoringCase, "Something else"); 42c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin assertDescription("a string ending with \"EXCERpt\" ignoring case", ignoringCase); 43c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin } 44c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin 45c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin} 46