Skip to content

Commit d5b0f18

Browse files
committed
Modify StringUtilExamples to remove compiler warnings
1 parent 79a5dbf commit d5b0f18

File tree

1 file changed

+22
-31
lines changed

1 file changed

+22
-31
lines changed
Lines changed: 22 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,31 @@
11
package com.robertsmieja.example.apache.commons.lang3;
22

33
import org.apache.commons.lang3.StringUtils;
4-
import org.apache.commons.lang3.tuple.ImmutablePair;
5-
import org.apache.commons.lang3.tuple.Pair;
64
import org.junit.Test;
75

8-
import java.util.Arrays;
9-
import java.util.List;
106
import java.util.function.BiFunction;
117
import java.util.function.Function;
12-
import java.util.stream.Collectors;
138

149
import static org.junit.Assert.assertArrayEquals;
1510
import static org.junit.Assert.assertEquals;
1611

1712
/**
1813
* This class contains example usages of StringUtils
19-
* Many of these methods are null-safe
14+
*
15+
* All of these methods are null-safe
2016
*/
2117
public class StringUtilsExamples {
2218

2319
@Test
24-
public void isBlankExamples(){
20+
public void isBlankExamples() {
2521
assertFunction(StringUtils::isBlank, "", true);
2622
assertFunction(StringUtils::isBlank, null, true);
2723
assertFunction(StringUtils::isBlank, " ", true);
2824
assertFunction(StringUtils::isBlank, " This isn't blank ", false);
2925
}
3026

3127
@Test
32-
public void isEmptyExamples(){
28+
public void isEmptyExamples() {
3329
assertFunction(StringUtils::isEmpty, "", true);
3430
assertFunction(StringUtils::isEmpty, null, true);
3531
assertFunction(StringUtils::isEmpty, " ", false);
@@ -57,42 +53,37 @@ public void uncapitalizationExamples() {
5753
}
5854

5955
@Test
60-
public void splitExamples(){
56+
public void splitExamples() {
6157
assertFunction(StringUtils::split, "Here are a bunch of words.", new String[]{"Here", "are", "a", "bunch", "of", "words."});
62-
assertFunction(StringUtils::split, "C, S, V, example",",", new String[]{"C", " S", " V", " example"});
63-
assertFunction(StringUtils::split, (String)null, null);
58+
assertFunction(StringUtils::split, "C, S, V, example", ",", new String[]{"C", " S", " V", " example"});
59+
60+
//Expanded lambda expression is needed because the arguments (null, null) match multiple method signatures
61+
assertFunction((String str, String seperatorChar) -> StringUtils.split(str, seperatorChar), null, null, null);
6462
}
6563

6664
@Test
67-
public void differenceExamples(){
65+
public void differenceExamples() {
6866
assertFunction(StringUtils::difference, "Similar string", "Similar string kindof", " kindof");
6967
assertFunction(StringUtils::difference, "same string", "same string", "");
7068
assertFunction(StringUtils::difference, "different string", "foo bar", "foo bar");
7169
assertFunction(StringUtils::difference, null, null, null);
7270
}
7371

7472

73+
/* Helpers */
74+
private <T, R> void assertFunction(Function<T, R> function, T input, R output) {
75+
assertEquals(output, function.apply(input));
76+
}
7577

78+
private <T, R> void assertFunction(Function<T, R[]> function, T input, R[] output) {
79+
assertArrayEquals(output, function.apply(input));
80+
}
7681

77-
78-
79-
80-
81-
82-
83-
/* Helpers */
84-
private <T, R> void assertFunction(Function<T, R> function, T input, R output){
85-
if (output instanceof Object[]){
86-
assertArrayEquals((R[])output, (R[]) function.apply(input));
87-
} else {
88-
assertEquals(output, function.apply(input));
89-
}
82+
private <T, O, R> void assertFunction(BiFunction<T, O, R> function, T input, O otherInput, R output) {
83+
assertEquals(output, function.apply(input, otherInput));
9084
}
91-
private <T, O, R> void assertFunction(BiFunction<T, O, R> function, T input, O otherInput, R output){
92-
if (output instanceof Object[]){
93-
assertArrayEquals((R[])output, (R[]) function.apply(input, otherInput));
94-
} else {
95-
assertEquals(output, function.apply(input,otherInput));
96-
}
85+
86+
private <T, O, R> void assertFunction(BiFunction<T, O, R[]> function, T input, O otherInput, R[] output) {
87+
assertArrayEquals(output, function.apply(input, otherInput));
9788
}
9889
}

0 commit comments

Comments
 (0)