/*  Copyright (c) 2000-2006 hamcrest.org
 */
package org.hamcrest.text;

import org.hamcrest.Description;
import org.hamcrest.Matcher;
import org.hamcrest.Factory;
import org.hamcrest.TypeSafeMatcher;

Tests if a string is equal to another string, regardless of the case.
/** * Tests if a string is equal to another string, regardless of the case. */
public class IsEqualIgnoringCase extends TypeSafeMatcher<String> { // TODO: Replace String with CharSequence to allow for easy interopability between // String, StringBuffer, StringBuilder, CharBuffer, etc (joe). private final String string; public IsEqualIgnoringCase(String string) { if (string == null) { throw new IllegalArgumentException("Non-null value required by IsEqualIgnoringCase()"); } this.string = string; } @Override public boolean matchesSafely(String item) { return string.equalsIgnoreCase(item); } @Override public void describeMismatchSafely(String item, Description mismatchDescription) { mismatchDescription.appendText("was ").appendText(item); } @Override public void describeTo(Description description) { description.appendText("equalToIgnoringCase(") .appendValue(string) .appendText(")"); }
Creates a matcher of String that matches when the examined string is equal to the specified expectedString, ignoring case.

For example:
assertThat("Foo", equalToIgnoringCase("FOO"))
Params:
  • expectedString – the expected value of matched strings
/** * Creates a matcher of {@link String} that matches when the examined string is equal to * the specified expectedString, ignoring case. * <p/> * For example: * <pre>assertThat("Foo", equalToIgnoringCase("FOO"))</pre> * * @param expectedString * the expected value of matched strings */
@Factory public static Matcher<String> equalToIgnoringCase(String expectedString) { return new IsEqualIgnoringCase(expectedString); } }