This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-lang.git
The following commit(s) were added to refs/heads/master by this push: new dc146ca Parameterize tests to validate supplementary character input. dc146ca is described below commit dc146cae667976aebbcd283af0d63431e2338692 Author: Gary Gregory <garydgreg...@gmail.com> AuthorDate: Sat Nov 20 10:22:40 2021 -0500 Parameterize tests to validate supplementary character input. --- .../org/apache/commons/lang3/StringUtilsTest.java | 82 +++++++++++++--------- 1 file changed, 50 insertions(+), 32 deletions(-) diff --git a/src/test/java/org/apache/commons/lang3/StringUtilsTest.java b/src/test/java/org/apache/commons/lang3/StringUtilsTest.java index 6d3e0db..74b8369 100644 --- a/src/test/java/org/apache/commons/lang3/StringUtilsTest.java +++ b/src/test/java/org/apache/commons/lang3/StringUtilsTest.java @@ -46,6 +46,8 @@ import org.apache.commons.lang3.mutable.MutableInt; import org.apache.commons.lang3.text.WordUtils; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; /** * Unit tests for methods of {@link org.apache.commons.lang3.StringUtils} @@ -63,7 +65,7 @@ public class StringUtilsTest { static { final StringBuilder ws = new StringBuilder(); final StringBuilder nws = new StringBuilder(); - final String hs = String.valueOf(((char) 160)); + final String hs = String.valueOf((char) 160); final StringBuilder tr = new StringBuilder(); final StringBuilder ntr = new StringBuilder(); for (int i = 0; i < Character.MAX_VALUE; i++) { @@ -1229,7 +1231,7 @@ public class StringUtilsTest { } @Test - public void testJoin_ArrayString() { + public void testJoin_ArrayString_EmptyDelimiter() { assertNull(StringUtils.join((Object[]) null, null)); assertEquals(TEXT_LIST_NOSEP, StringUtils.join(ARRAY_LIST, null)); assertEquals(TEXT_LIST_NOSEP, StringUtils.join(ARRAY_LIST, "")); @@ -1238,18 +1240,24 @@ public class StringUtilsTest { assertEquals("", StringUtils.join(EMPTY_ARRAY_LIST, null)); assertEquals("", StringUtils.join(EMPTY_ARRAY_LIST, "")); - assertEquals("", StringUtils.join(EMPTY_ARRAY_LIST, SEPARATOR)); - assertEquals(TEXT_LIST, StringUtils.join(ARRAY_LIST, SEPARATOR)); - assertEquals(",,foo", StringUtils.join(MIXED_ARRAY_LIST, SEPARATOR)); - assertEquals("foo,2", StringUtils.join(MIXED_TYPE_LIST, SEPARATOR)); - - assertEquals("/", StringUtils.join(MIXED_ARRAY_LIST, "/", 0, MIXED_ARRAY_LIST.length - 1)); assertEquals("", StringUtils.join(MIXED_ARRAY_LIST, "", 0, MIXED_ARRAY_LIST.length - 1)); - assertEquals("foo", StringUtils.join(MIXED_TYPE_LIST, "/", 0, 1)); - assertEquals("foo/2", StringUtils.join(MIXED_TYPE_LIST, "/", 0, 2)); - assertEquals("2", StringUtils.join(MIXED_TYPE_LIST, "/", 1, 2)); - assertEquals("", StringUtils.join(MIXED_TYPE_LIST, "/", 2, 1)); + } + + @ParameterizedTest + @ValueSource(strings = {",", ";", Supplementary.CharU20000, Supplementary.CharU20001}) + public void testJoin_ArrayString_NonEmptyDelimiter(final String delimiter) { + assertEquals("", StringUtils.join(EMPTY_ARRAY_LIST, delimiter)); + + assertEquals(String.join(delimiter, ARRAY_LIST), StringUtils.join(ARRAY_LIST, delimiter)); + assertEquals(delimiter + delimiter + "foo", StringUtils.join(MIXED_ARRAY_LIST, delimiter)); + assertEquals(String.join(delimiter, "foo", "2"), StringUtils.join(MIXED_TYPE_LIST, delimiter)); + + assertEquals(delimiter, StringUtils.join(MIXED_ARRAY_LIST, delimiter, 0, MIXED_ARRAY_LIST.length - 1)); + assertEquals("foo", StringUtils.join(MIXED_TYPE_LIST, delimiter, 0, 1)); + assertEquals(String.join(delimiter, "foo", "2"), StringUtils.join(MIXED_TYPE_LIST, delimiter, 0, 2)); + assertEquals("2", StringUtils.join(MIXED_TYPE_LIST, delimiter, 1, 2)); + assertEquals("", StringUtils.join(MIXED_TYPE_LIST, delimiter, 2, 1)); } @Test @@ -1307,7 +1315,7 @@ public class StringUtilsTest { } @Test - public void testJoin_List() { + public void testJoin_List_EmptyDelimiter() { assertNull(StringUtils.join((List<String>) null, null)); assertEquals(TEXT_LIST_NOSEP, StringUtils.join(STRING_LIST, null)); assertEquals(TEXT_LIST_NOSEP, StringUtils.join(STRING_LIST, "")); @@ -1316,20 +1324,12 @@ public class StringUtilsTest { assertEquals("", StringUtils.join(EMPTY_STRING_LIST, null)); assertEquals("", StringUtils.join(EMPTY_STRING_LIST, "")); - assertEquals("", StringUtils.join(EMPTY_STRING_LIST, SEPARATOR)); - - assertEquals(TEXT_LIST, StringUtils.join(STRING_LIST, SEPARATOR)); - assertEquals(",,foo", StringUtils.join(MIXED_STRING_LIST, SEPARATOR)); - assertEquals("foo,2", StringUtils.join(MIXED_TYPE_OBJECT_LIST, SEPARATOR)); - assertEquals("/", StringUtils.join(MIXED_STRING_LIST, "/", 0, MIXED_STRING_LIST.size() - 1)); assertEquals("", StringUtils.join(MIXED_STRING_LIST, "", 0, MIXED_STRING_LIST.size()- 1)); - assertEquals("foo", StringUtils.join(MIXED_TYPE_OBJECT_LIST, "/", 0, 1)); - assertEquals("foo/2", StringUtils.join(MIXED_TYPE_OBJECT_LIST, "/", 0, 2)); - assertEquals("2", StringUtils.join(MIXED_TYPE_OBJECT_LIST, "/", 1, 2)); - assertEquals("", StringUtils.join(MIXED_TYPE_OBJECT_LIST, "/", 2, 1)); - assertNull(null, StringUtils.join((List<?>) null, "/", 0, 1)); + } + @Test + public void testJoin_List_CharDelimiter() { assertEquals("/", StringUtils.join(MIXED_STRING_LIST, '/', 0, MIXED_STRING_LIST.size() - 1)); assertEquals("foo", StringUtils.join(MIXED_TYPE_OBJECT_LIST, '/', 0, 1)); assertEquals("foo/2", StringUtils.join(MIXED_TYPE_OBJECT_LIST, '/', 0, 2)); @@ -1338,6 +1338,23 @@ public class StringUtilsTest { assertNull(null, StringUtils.join((List<?>) null, '/', 0, 1)); } + @ParameterizedTest + @ValueSource(strings = {",", ";", Supplementary.CharU20000, Supplementary.CharU20001}) + public void testJoin_List_NonEmptyDelimiter(final String delimiter) { + assertEquals("", StringUtils.join(EMPTY_STRING_LIST, delimiter)); + + assertEquals(String.join(delimiter, STRING_LIST), StringUtils.join(STRING_LIST, delimiter)); + assertEquals(delimiter + delimiter + "foo", StringUtils.join(MIXED_STRING_LIST, delimiter)); + assertEquals(String.join(delimiter, "foo", "2"), StringUtils.join(MIXED_TYPE_OBJECT_LIST, delimiter)); + + assertEquals(delimiter, StringUtils.join(MIXED_STRING_LIST, delimiter, 0, MIXED_STRING_LIST.size() - 1)); + assertEquals("foo", StringUtils.join(MIXED_TYPE_OBJECT_LIST, delimiter, 0, 1)); + assertEquals(String.join(delimiter, "foo", "2"), StringUtils.join(MIXED_TYPE_OBJECT_LIST, delimiter, 0, 2)); + assertEquals("2", StringUtils.join(MIXED_TYPE_OBJECT_LIST, delimiter, 1, 2)); + assertEquals("", StringUtils.join(MIXED_TYPE_OBJECT_LIST, delimiter, 2, 1)); + assertNull(null, StringUtils.join((List<?>) null, delimiter, 0, 1)); + } + @Test public void testJoin_Objectarray() { // assertNull(StringUtils.join(null)); // generates warning @@ -1371,15 +1388,16 @@ public class StringUtilsTest { assertNull(StringUtils.join((Object[]) null)); } - @Test - public void testJoinWith() { - assertEquals("", StringUtils.joinWith(",")); // empty array - assertEquals("", StringUtils.joinWith(",", (Object[]) NULL_ARRAY_LIST)); - assertEquals("null", StringUtils.joinWith(",", NULL_TO_STRING_LIST)); //toString method prints 'null' + @ParameterizedTest + @ValueSource(strings = {",", ";", Supplementary.CharU20000, Supplementary.CharU20001}) + public void testJoinWith(final String delimiter) { + assertEquals("", StringUtils.joinWith(delimiter)); // empty array + assertEquals("", StringUtils.joinWith(delimiter, (Object[]) NULL_ARRAY_LIST)); + assertEquals("null", StringUtils.joinWith(delimiter, NULL_TO_STRING_LIST)); // toString method prints 'null' - assertEquals("a,b,c", StringUtils.joinWith(",", "a", "b", "c")); - assertEquals(",a,", StringUtils.joinWith(",", null, "a", "")); - assertEquals(",a,", StringUtils.joinWith(",", "", "a", "")); + assertEquals(String.join(delimiter, "a", "b", "c"), StringUtils.joinWith(delimiter, "a", "b", "c")); + assertEquals(String.join(delimiter, "", "a", ""), StringUtils.joinWith(delimiter, null, "a", "")); + assertEquals(String.join(delimiter, "", "a", ""), StringUtils.joinWith(delimiter, "", "a", "")); assertEquals("ab", StringUtils.joinWith(null, "a", "b")); }