Skip to content

Commit

Permalink
- B Changed StringUtils.split to accept regex and no longer trim by d…
Browse files Browse the repository at this point in the history
…efault.
  • Loading branch information
ScottBob committed Mar 7, 2024
1 parent 98313f7 commit 6b7638b
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 31 deletions.
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
package com.spun.util;

import org.approvaltests.Approvals;
import org.approvaltests.core.Options;
import org.approvaltests.reporters.AutoApproveReporter;
import org.approvaltests.reporters.UseReporter;
import org.approvaltests.utils.parseinput.ParseInput;
import org.junit.jupiter.api.Assumptions;
import org.junit.jupiter.api.Test;

import java.time.LocalDate;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
Expand Down Expand Up @@ -35,15 +34,20 @@ public void testToNameCase()
@Test
public void testSplit()
{
// TODO: continue here next week
Assumptions.assumeFalse(LocalDate.now().isBefore(LocalDate.of(2024, 3, 11)));
var expected = """
'quick brown fox'.split( ) => [quick, brown, fox]
'quick/brown/ fox'.split(/) => [quick, brown, fox]
'quick**brown**fox'.split(\\*\\*) => [quick, brown, fox]
' quick brown fox '.split( ) => [, quick, , , brown, fox]
'quick brown fox'.split(brown) => [quick, fox]
""";
SplitUseCase[] split = {new SplitUseCase("quick brown fox", " "),
new SplitUseCase("quick/brown/ fox", "/"),
new SplitUseCase("quick**brown**fox", "**"),
new SplitUseCase("quick**brown**fox", "\\*\\*"),
new SplitUseCase(" quick brown fox ", " "),
new SplitUseCase("quick brown fox", "brown"),};
Approvals.verifyAll(split, a -> String.format("'%s'.split(%s) => %s", a.start, a.splitOn,
Arrays.toString(StringUtils.split(a.start, a.splitOn))));
Arrays.toString(StringUtils.split(a.start, a.splitOn, true))),new Options().inline(expected));
}
@Test
public void testJavaScript()
Expand Down Expand Up @@ -136,6 +140,6 @@ public void testSplitting()
1ś2śś3śś, ś -> [1, 2, , 3, ]
""";
ParseInput.from(expected).withTypes(String.class, String.class)
.verifyAll((i, p) -> Arrays.toString(StringUtils.splitt(i, p)));
.verifyAll((i, p) -> Arrays.toString(StringUtils.split(i, p)));
}
}
}

This file was deleted.

27 changes: 10 additions & 17 deletions approvaltests-util/src/main/java/com/spun/util/StringUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
import java.util.Map;
import java.util.Properties;
import java.util.SortedMap;
import java.util.Vector;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

Expand Down Expand Up @@ -61,27 +60,21 @@ public static String URLDecode(String input)
}
public static String[] split(String string, String splitOn)
{
return split(string, splitOn, true);
return split(string, splitOn, false);
}
public static String[] split(String string, String splitOn, boolean trim)
{
String[] result = splitt(string, splitOn);
if (trim)
String[] result;
if (string.endsWith(splitOn))
{
result = Query.select(result, a -> a.trim()).asArray();
String ending = "ś".equals(splitOn) ? "š" : "ś";
string = string + ending;
String[] splitted = string.split(splitOn, -1);
result = ArrayUtils.getSubsection(splitted, 0, splitted.length - 1);
} else {
result = string.split(splitOn);
}
return result;
}
public static String[] splitt(String input, String pattern)
{
if (input.endsWith(pattern))
{
String ending = "ś".equals(pattern) ? "š" : "ś";
input = input + ending;
String[] splitted = input.split(pattern, -1);
return ArrayUtils.getSubsection(splitted, 0, splitted.length - 1);
}
return input.split(pattern);
return trim ? Query.select(result, a -> a.trim()).asArray() : result;
}
public static String replace(String string, String find, String replace)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ private static void replaceExpected(CodeParts codeParts, String actual)
}
public static String indent(String actual, String tab)
{
String[] split = StringUtils.splitt(actual, "\n");
String[] split = StringUtils.split(actual, "\n");
String output = "";
for (String line : split)
{
Expand Down

0 comments on commit 6b7638b

Please sign in to comment.