package org.hamcrest.text; import org.hamcrest.Matcher; import org.junit.Test; import static org.hamcrest.AbstractMatcherTest.*; import static org.hamcrest.text.IsEqualIgnoringCase.equalToIgnoringCase; public final class IsEqualIgnoringCaseTest { @Test public void copesWithNullsAndUnknownTypes() { Matcher<String> matcher = equalToIgnoringCase("irrelevant"); assertNullSafe(matcher); assertUnknownTypeSafe(matcher); } @Test public void ignoresCaseOfCharsInString() { final Matcher<String> matcher = equalToIgnoringCase("heLLo"); assertMatches(matcher, "HELLO"); assertMatches(matcher, "hello"); assertMatches(matcher, "HelLo"); assertDoesNotMatch(matcher, "bye"); } @Test public void mismatchesIfAdditionalWhitespaceIsPresent() { final Matcher<String> matcher = equalToIgnoringCase("heLLo"); assertDoesNotMatch(matcher, "hello "); assertDoesNotMatch(matcher, " hello"); } @Test public void mismatchesNull() { final Matcher<String> matcher = equalToIgnoringCase("heLLo"); assertDoesNotMatch(matcher, null); } @Test(expected=IllegalArgumentException.class) public void canOnlyBeConstructedAboutANonNullString() { equalToIgnoringCase(null); } @Test public void describesItself() { final Matcher<String> matcher = equalToIgnoringCase("heLLo"); assertDescription("a string equal to \"heLLo\" ignoring case", matcher); } @Test public void describesAMismatch() { final Matcher<String> matcher = equalToIgnoringCase("heLLo"); String expectedMismatchString = "was \"Cheese\""; assertMismatchDescription(expectedMismatchString, matcher, "Cheese"); } }