Skip to content

Commit 7577d9b

Browse files
committed
Tidying up string matchers. Removed IsBlankString
1 parent dda4713 commit 7577d9b

File tree

9 files changed

+30
-84
lines changed

9 files changed

+30
-84
lines changed

hamcrest-core/src/main/java/org/hamcrest/TypeSafeMatcher.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,16 @@ protected TypeSafeMatcher(ReflectiveTypeFinder typeFinder) {
4343
/**
4444
* Subclasses should implement this. The item will already have been checked for
4545
* the specific type and will never be null.
46+
* @param item the actual item to match
47+
* @return whether the item has been matched
4648
*/
4749
protected abstract boolean matchesSafely(T item);
4850

4951
/**
5052
* Subclasses should override this. The item will already have been checked for
5153
* the specific type and will never be null.
54+
* @param item the actual item to match
55+
* @param mismatchDescription where to describe the mismatch
5256
*/
5357
protected void describeMismatchSafely(T item, Description mismatchDescription) {
5458
super.describeMismatch(item, mismatchDescription);

hamcrest-library/src/main/java/org/hamcrest/Matchers.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1290,7 +1290,7 @@ public static org.hamcrest.Matcher<java.lang.String> isEmptyString() {
12901290
* <pre>assertThat(((String)null), is(blankOrNullString()))</pre>
12911291
*/
12921292
public static org.hamcrest.Matcher<java.lang.String> blankOrNullString() {
1293-
return org.hamcrest.text.IsBlankString.blankOrNullString();
1293+
return MatchStrings.blankOrNullString();
12941294
}
12951295

12961296
/**
@@ -1300,7 +1300,7 @@ public static org.hamcrest.Matcher<java.lang.String> blankOrNullString() {
13001300
* <pre>assertThat(" ", is(blankString()))</pre>
13011301
*/
13021302
public static org.hamcrest.Matcher<java.lang.String> blankString() {
1303-
return org.hamcrest.text.IsBlankString.blankString();
1303+
return MatchStrings.blankString();
13041304
}
13051305

13061306
/**

hamcrest-library/src/main/java/org/hamcrest/text/IsBlankString.java

Lines changed: 0 additions & 55 deletions
This file was deleted.

hamcrest-library/src/main/java/org/hamcrest/text/IsEmptyString.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@
55
import org.hamcrest.Matcher;
66
import org.hamcrest.TypeSafeMatcher;
77

8-
import static org.hamcrest.core.AnyOf.anyOf;
8+
import static org.hamcrest.core.CombinableMatcher.either;
99
import static org.hamcrest.core.IsNull.nullValue;
1010

1111
/**
1212
* Matches empty Strings (and null).
1313
*/
1414
public final class IsEmptyString extends TypeSafeMatcher<String> {
15-
public static final IsEmptyString INSTANCE = new IsEmptyString();
16-
public static final Matcher<String> NULL_OR_EMPTY_INSTANCE = anyOf(nullValue(), INSTANCE);
15+
public static final IsEmptyString IS_EMPTY_STRING = new IsEmptyString();
16+
public static final Matcher<String> IS_NULL_OR_EMPTY_STRING = either(IS_EMPTY_STRING).or(nullValue());
1717

1818
private IsEmptyString() { }
1919

@@ -32,7 +32,7 @@ public void describeTo(Description description) {
3232
* For example:
3333
* <pre>assertThat("", isEmptyString())</pre>
3434
*
35-
* @deprecated use is(emptyString()) instead
35+
* @deprecated see {@link org.hamcrest.text.MatchStrings.emptyString() }
3636
*/
3737
@Deprecated
3838
public static Matcher<String> isEmptyString() {
@@ -46,7 +46,7 @@ public static Matcher<String> isEmptyString() {
4646
*
4747
*/
4848
public static Matcher<String> emptyString() {
49-
return INSTANCE;
49+
return IS_EMPTY_STRING;
5050
}
5151

5252
/**
@@ -71,6 +71,6 @@ public static Matcher<String> isEmptyOrNullString() {
7171
*
7272
*/
7373
public static Matcher<String> emptyOrNullString() {
74-
return NULL_OR_EMPTY_INSTANCE;
74+
return IS_NULL_OR_EMPTY_STRING;
7575
}
7676
}

hamcrest-library/src/main/java/org/hamcrest/text/IsEqualIgnoringCase.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,6 @@ public boolean matchesSafely(String item) {
2828
return string.equalsIgnoreCase(item);
2929
}
3030

31-
@Override
32-
public void describeMismatchSafely(String item, Description mismatchDescription) {
33-
mismatchDescription.appendText("was ").appendValue(item);
34-
}
35-
3631
@Override
3732
public void describeTo(Description description) {
3833
description.appendText("equalToIgnoringCase(")

hamcrest-library/src/main/java/org/hamcrest/text/IsEqualIgnoringWhiteSpace.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,6 @@ public boolean matchesSafely(String item) {
3030
return stripSpace(string).equalsIgnoreCase(stripSpace(item));
3131
}
3232

33-
@Override
34-
public void describeMismatchSafely(String item, Description mismatchDescription) {
35-
mismatchDescription.appendText("was ").appendText(stripSpace(item));
36-
}
37-
3833
@Override
3934
public void describeTo(Description description) {
4035
description.appendText("equalToIgnoringWhiteSpace(")

hamcrest-library/src/main/java/org/hamcrest/text/MatchStrings.java

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,26 @@
11
package org.hamcrest.text;
22

3+
import org.hamcrest.Description;
34
import org.hamcrest.Matcher;
45
import org.hamcrest.Matchers;
56

67
import java.util.Arrays;
78
import java.util.regex.Pattern;
89

10+
import static org.hamcrest.core.AnyOf.anyOf;
911
import static org.hamcrest.core.IsNull.nullValue;
12+
import static org.hamcrest.text.IsEmptyString.IS_EMPTY_STRING;
1013

1114
public class MatchStrings {
15+
private static final Pattern REGEX_WHITESPACE = Pattern.compile("\\s*");
16+
public static final Matcher<String> IS_BLANK_STRING = new MatchesPattern(REGEX_WHITESPACE) {
17+
@Override
18+
public void describeTo(Description description) {
19+
description.appendText("a blank string");
20+
}
21+
};
22+
public static final Matcher<String> IS_BLANK_OR_NULL_STRING = anyOf(IS_BLANK_STRING, nullValue());
23+
1224
/**
1325
* Creates a matcher of {@link String} that matches when the examined string is equal to
1426
* the specified expectedString, ignoring case.
@@ -45,7 +57,7 @@ public static Matcher<java.lang.String> equalToIgnoringWhiteSpace(java.lang.Stri
4557
* <pre>assertThat(((String)null), is(emptyOrNullString()))</pre>
4658
*/
4759
public static Matcher<java.lang.String> emptyOrNullString() {
48-
return Matchers.anyOf(nullValue(), IsEmptyString.INSTANCE);
60+
return Matchers.anyOf(nullValue(), IS_EMPTY_STRING);
4961
}
5062

5163
/**
@@ -54,7 +66,7 @@ public static Matcher<java.lang.String> emptyOrNullString() {
5466
* <pre>assertThat("", is(emptyString()))</pre>
5567
*/
5668
public static Matcher<java.lang.String> emptyString() {
57-
return IsEmptyString.INSTANCE;
69+
return IS_EMPTY_STRING;
5870
}
5971

6072
/**
@@ -64,7 +76,7 @@ public static Matcher<java.lang.String> emptyString() {
6476
* <pre>assertThat(((String)null), is(blankOrNullString()))</pre>
6577
*/
6678
public static Matcher<java.lang.String> blankOrNullString() {
67-
return Matchers.anyOf(nullValue(), IsBlankString.INSTANCE);
79+
return IS_BLANK_OR_NULL_STRING;
6880
}
6981

7082
/**
@@ -74,7 +86,7 @@ public static Matcher<java.lang.String> blankOrNullString() {
7486
* <pre>assertThat(" ", is(blankString()))</pre>
7587
*/
7688
public static Matcher<java.lang.String> blankString() {
77-
return IsBlankString.INSTANCE;
89+
return IS_BLANK_STRING;
7890
}
7991

8092
/**

hamcrest-library/src/main/java/org/hamcrest/text/StringContainsInOrder.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,7 @@ public boolean matchesSafely(String s) {
2626

2727
return true;
2828
}
29-
30-
@Override
31-
public void describeMismatchSafely(String item, Description mismatchDescription) {
32-
mismatchDescription.appendText("was \"").appendText(item).appendText("\"");
33-
}
34-
29+
3530
@Override
3631
public void describeTo(Description description) {
3732
description.appendText("a string containing ")

hamcrest-library/src/test/java/org/hamcrest/text/IsBlankStringTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public final class IsBlankStringTest {
4444
@Test public void
4545
describesItself() {
4646
assertDescription("a blank string", blankString());
47-
assertDescription("(null or a blank string)", blankOrNullString());
47+
assertDescription("(a blank string or null)", blankOrNullString());
4848
}
4949

5050
@Test public void

0 commit comments

Comments
 (0)