Skip to content

Commit

Permalink
Extracting non-breaking spaces in a constant for tests
Browse files Browse the repository at this point in the history
  • Loading branch information
maximedezette authored and maxime.dezette committed Jul 29, 2023
1 parent 55197d7 commit 0d5edf8
Show file tree
Hide file tree
Showing 9 changed files with 95 additions and 53 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1563,7 +1563,7 @@ public SELF isNotEqualToIgnoringWhitespace(CharSequence expected) {
* To be exact, the following rules are applied:
* <ul>
* <li>all leading and trailing whitespace of both actual and expected strings are ignored</li>
* <li>any remaining whitespace (including non-breaking- spaces), appearing within either string, is collapsed to a single space before comparison</li>
* <li>any remaining whitespace (including non-breaking spaces), appearing within either string, is collapsed to a single space before comparison</li>
* </ul>
* <p>
* Example:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@
import org.assertj.core.test.CaseInsensitiveStringComparator;
import org.junit.jupiter.api.BeforeEach;

import java.util.Collections;
import java.util.HashSet;
import java.util.Set;

/**
*
* Base class for {@link Strings} tests.
Expand All @@ -38,6 +42,17 @@ public class StringsBaseTest {
protected ComparatorBasedComparisonStrategy comparisonStrategy;
protected Strings stringsWithCaseInsensitiveComparisonStrategy;

protected static final Set<Character> NON_BREAKING_SPACES;

static {
Set<Character> nonBreakingSpaces = new HashSet<>();
nonBreakingSpaces.add('\u00A0');
nonBreakingSpaces.add('\u2007');
nonBreakingSpaces.add('\u202F');

NON_BREAKING_SPACES = Collections.unmodifiableSet(nonBreakingSpaces);
}

@BeforeEach
public void setUp() {
failures = spy(new Failures());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,11 +41,16 @@ void should_pass_if_string_is_blank(String actual) {
}

public static Stream<String> notBlank() {
return Stream.of("a",
" bc ",
"\u00A0", // non-breaking space
"\u2007", // non-breaking space
"\u202F"); // non-breaking space);

Stream<String> nonBreakingSpaces = NON_BREAKING_SPACES
.stream()
.map(String::valueOf);

Stream<String> notBlank = Stream.of(
"a",
" bc ");

return Stream.concat(notBlank, nonBreakingSpaces);
}

@ParameterizedTest
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,13 +39,16 @@ void should_pass_if_string_contains_only_whitespaces(String actual) {
}

public static Stream<String> containNotOnlyWhitespace() {
return Stream.of(null,
"",
"a",
" bc ",
"\u00A0", // non-breaking space
"\u2007", // non-breaking space
"\u202F"); // non-breaking space
Stream<String> notBlank = Stream.of(null,
"",
"a",
" bc ");

Stream<String> nonBreakingSpaces = NON_BREAKING_SPACES
.stream()
.map(String::valueOf);

return Stream.concat(notBlank, nonBreakingSpaces);
}

@ParameterizedTest
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,16 @@
class Strings_assertDoesNotContainOnlyWhitespaces_Test extends StringsBaseTest {

public static Stream<String> containsNotOnlyWhitespace() {
return Stream.of(null,
"",
"a",
" bc ",
"\u00A0", // non-breaking space
"\u2007", // non-breaking space
"\u202F"); // non-breaking space
Stream<String> notBlank = Stream.of(null,
"",
"a",
" bc ");

Stream<String> nonBreakingSpaces = NON_BREAKING_SPACES
.stream()
.map(String::valueOf);

return Stream.concat(notBlank, nonBreakingSpaces);
}

@ParameterizedTest
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,19 +72,25 @@ void should_pass_if_both_Strings_are_equal_after_whitespace_is_normalized(String
}

public static Stream<Arguments> equalNormalizingWhitespaceGenerator() {
return Stream.of(Arguments.of("my foo bar", "my foo bar"),
Arguments.of(" my foo bar ", "my foo bar"),
Arguments.of(" my\tfoo bar ", " my foo bar"),
Arguments.of(" my foo bar ", "my foo bar"),
Arguments.of(" my foo bar ", " my foo bar "),
Arguments.of(" ", " "),
Arguments.of(" my\tfoo bar ", new String(arrayOf(' ', 'm', 'y', ' ', 'f', 'o', 'o', ' ', 'b', 'a', 'r'))),
Arguments.of(" my\tfoo bar ", " my\tfoo bar "), // same
Arguments.of(null, null), // null
Arguments.of(" \t \t", " "),
Arguments.of(" abc", "abc "),
Arguments.of("my\u00A0foo bar", "my foo bar"), // non-breaking space
Arguments.of("my\u2007foo bar", "my foo bar"), // non-breaking space
Arguments.of("my\u202Ffoo bar", "my foo bar")); // non-breaking space
Stream<Arguments> regularWhiteSpaces = Stream.of(Arguments.of("my foo bar", "my foo bar"),
Arguments.of(" my foo bar ", "my foo bar"),
Arguments.of(" my\tfoo bar ", " my foo bar"),
Arguments.of(" my foo bar ", "my foo bar"),
Arguments.of(" my foo bar ", " my foo bar "),
Arguments.of(" ", " "),
Arguments.of(" my\tfoo bar ",
new String(arrayOf(' ', 'm', 'y', ' ', 'f', 'o', 'o', ' ', 'b',
'a', 'r'))),
Arguments.of(" my\tfoo bar ", " my\tfoo bar "), // same
Arguments.of(null, null), // null
Arguments.of(" \t \t", " "),
Arguments.of(" abc", "abc "));

Stream<Arguments> nonBreakingSpaces = NON_BREAKING_SPACES
.stream()
.map(nonBreakingSpace -> Arguments.of("my" + nonBreakingSpace
+ "foo bar", "my foo bar"));

return Stream.concat(regularWhiteSpaces, nonBreakingSpaces);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -42,13 +42,16 @@ void should_pass_string_is_blank(String actual) {
}

public static Stream<String> notBlank() {
return Stream.of(null,
"",
"a",
" bc ",
"\u00A0", // non-breaking space
"\u2007", // non-breaking space
"\u202F"); // non-breaking space
Stream<String> notBlank = Stream.of(null,
"",
"a",
" bc ");

Stream<String> nonBreakingSpaces = NON_BREAKING_SPACES
.stream()
.map(String::valueOf);

return Stream.concat(notBlank, nonBreakingSpaces);
}

@ParameterizedTest
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,15 @@
class Strings_assertNotBlank_Test extends StringsBaseTest {

public static Stream<String> notBlank() {
return Stream.of("a",
" bc ",
"\u00A0", // non-breaking space
"\u2007", // non-breaking space
"\u202F"); // non-breaking space
Stream<String> nonBreakingSpaces = NON_BREAKING_SPACES
.stream()
.map(String::valueOf);

Stream<String> notBlank = Stream.of(
"a",
" bc ");

return Stream.concat(notBlank, nonBreakingSpaces);
}

@ParameterizedTest
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,16 @@
class Strings_assertNotJavaBlank_Test extends StringsBaseTest {

public static Stream<String> notBlank() {
return Stream.of(null,
"",
"a",
" bc ",
"\u00A0", // non-breaking space
"\u2007", // non-breaking space
"\u202F"); // non-breaking space
Stream<String> notBlank = Stream.of(null,
"",
"a",
" bc ");

Stream<String> nonBreakingSpaces = NON_BREAKING_SPACES
.stream()
.map(String::valueOf);

return Stream.concat(notBlank, nonBreakingSpaces);
}

@ParameterizedTest
Expand Down

0 comments on commit 0d5edf8

Please sign in to comment.