View Javadoc
1   package net.objectlab.kit.util;
2   
3   import static org.assertj.core.api.Assertions.assertThat;
4   import static org.junit.Assert.fail;
5   
6   import java.math.BigDecimal;
7   import java.util.TimeZone;
8   import java.util.function.Consumer;
9   
10  import org.junit.After;
11  import org.junit.Before;
12  import org.junit.Test;
13  
14  public class StringUtilTest {
15      private TimeZone tzBefore;
16  
17      @Before
18      public void setUp() {
19          tzBefore = TimeZone.getDefault();
20          // System.err.println("setup " + tzBefore);
21          TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
22      }
23  
24      @After
25      public void tearDown() {
26          // System.err.println("tearDown " + tzBefore);
27          TimeZone.setDefault(tzBefore);
28      }
29  
30      @Test
31      public void testCompareTo() {
32          assertThat(StringUtil.compareTo(null, null)).isEqualTo(0);
33          assertThat(StringUtil.compareTo("A", null)).isEqualTo(1);
34          assertThat(StringUtil.compareTo(null, "B")).isEqualTo(-1);
35          assertThat(StringUtil.compareTo("A", "B")).isEqualTo(-1);
36          assertThat(StringUtil.compareTo("XA", "B")).isEqualTo(22);
37          assertThat(StringUtil.compareTo("XA", "XA")).isEqualTo(0);
38      }
39  
40      @Test
41      public void testRemoveTrailingChar() {
42          assertThat(StringUtil.removeTrailingChar(null, ' ')).isNull();
43          assertThat(StringUtil.removeTrailingChar("", ' ')).isEmpty();
44          assertThat(StringUtil.removeTrailingChar("Hello ", ' ')).isEqualToIgnoringCase("Hello");
45          assertThat(StringUtil.removeTrailingChar("Hello     ", ' ')).isEqualToIgnoringCase("Hello");
46          assertThat(StringUtil.removeTrailingChar(" Hello  ", ' ')).isEqualToIgnoringCase(" Hello");
47          assertThat(StringUtil.removeTrailingChar(" Hellooo", 'o')).isEqualToIgnoringCase(" Hell");
48          assertThat(StringUtil.removeTrailingChar(" Hollooo", 'o')).isEqualToIgnoringCase(" Holl");
49      }
50  
51      @Test
52      public void testReplaceCRToken() {
53          assertThat(StringUtil.replaceCRToken(null)).isNull();
54          assertThat(StringUtil.replaceCRToken("Hello")).isEqualTo("Hello");
55          assertThat(StringUtil.replaceCRToken("Hello%CR%")).isEqualTo("Hello" + System.getProperty("line.separator"));
56          assertThat(StringUtil.replaceCRToken("Hel%CR%lo")).isEqualTo("Hel" + System.getProperty("line.separator") + "lo");
57      }
58  
59      @Test
60      public void testToUpperCase() {
61          assertThat(StringUtil.toUpperCase(null)).isNull();
62          assertThat(StringUtil.toUpperCase("Hi")).isEqualTo("HI");
63          assertThat(StringUtil.toUpperCase("HeLLo")).isEqualTo("HELLO");
64      }
65  
66      @Test
67      public void testIsNotBlank() {
68          assertThat(StringUtil.isNotBlank(null)).isFalse();
69          assertThat(StringUtil.isNotBlank("")).isFalse();
70          assertThat(StringUtil.isNotBlank(" ")).isFalse();
71          assertThat(StringUtil.isNotBlank(" X")).isTrue();
72          assertThat(StringUtil.isNotBlank(new Object())).isFalse();
73          assertThat(StringUtil.isNotBlank(BigDecimal.ONE)).isFalse();
74      }
75  
76      /**
77       * TODO Fix the TZ issue....
78       */
79      @Test
80      public void testDefaultFormatDatetime() {
81          assertThat(StringUtil.defaultFormatDatetime(null)).isNull();
82          // assertThat(StringUtil.defaultFormatDatetime(new Date(1531603574189L))).isEqualToIgnoringCase("14-Jul-2018 22:26:14");
83      }
84  
85      /**
86       * TODO Fix the TZ issue....
87       */
88      @Test
89      public void testDefaultFileFormatTimestamp() {
90          assertThat(StringUtil.defaultFileFormatTimestamp(null)).isNull();
91          // assertThat(StringUtil.defaultFileFormatTimestamp(new Date(1531603574189L))).isEqualToIgnoringCase("20180714-222614");
92      }
93  
94      @Test
95      public void testReplace() {
96          assertThat(StringUtil.replace(null, null, null)).isNull();
97          assertThat(StringUtil.replace("hi", null, null)).isNull();
98          assertThat(StringUtil.replace("", null, null)).isNull();
99          assertThat(StringUtil.replace("hi", "ho", null)).isNull();
100         assertThat(StringUtil.replace("", "", null)).isNull();
101         assertThat(StringUtil.replace("hi", "Ho", "")).isEmpty();
102         assertThat(StringUtil.replace("", "", "")).isEmpty();
103         assertThat(StringUtil.replace(null, null, "Hello")).isEqualTo("Hello");
104         assertThat(StringUtil.replace("", null, "Hello")).isEqualTo("Hello");
105         assertThat(StringUtil.replace(null, "", "Hello")).isEqualTo("Hello");
106         assertThat(StringUtil.replace("", "", "Hello")).isEqualTo("Hello");
107         assertThat(StringUtil.replace("H", "Ti", "Hello")).isEqualTo("Tiello");
108         assertThat(StringUtil.replace("WW", "Ti", "Hello")).isEqualTo("Hello");
109         assertThat(StringUtil.replace("l", "Ti", "Hello")).isEqualTo("HeTiTio");
110         assertThat(StringUtil.replace("l", null, "Hello")).isEqualTo("Henullnullo");
111         assertThat(StringUtil.replace(null, "@@", "Hello")).isEqualTo("Hello");
112     }
113 
114     @Test
115     public void testTrimAndUpperCase() {
116         assertThat(StringUtil.trimAndUpperCase(null)).isNull();
117         assertThat(StringUtil.trimAndUpperCase("")).isEmpty();
118         assertThat(StringUtil.trimAndUpperCase("hi")).isEqualTo("HI");
119         assertThat(StringUtil.trimAndUpperCase("  hi")).isEqualTo("HI");
120         assertThat(StringUtil.trimAndUpperCase("  hi  ")).isEqualTo("HI");
121         assertThat(StringUtil.trimAndUpperCase(" hi      ")).isEqualTo("HI");
122     }
123 
124     @Test
125     public void testToLowerCaseString() {
126         assertThat(StringUtil.toLowerCase((String) null)).isNull();
127         assertThat(StringUtil.toLowerCase("")).isEmpty();
128         assertThat(StringUtil.toLowerCase("hi")).isEqualTo("hi");
129         assertThat(StringUtil.toLowerCase("  hI")).isEqualTo("  hi");
130         assertThat(StringUtil.toLowerCase("  Hi HO  ")).isEqualTo("  hi ho  ");
131         assertThat(StringUtil.toLowerCase(" hi      ")).isEqualTo(" hi      ");
132     }
133 
134     /*
135     @Test
136     public void testToLowerCaseStringArray() {
137         assertThat(StringUtil.toLowerCase((String) null, null)).isNull();
138         assertThat(StringUtil.toLowerCase("", "", "")).isEmpty();
139         assertThat(StringUtil.toLowerCase("hi", "YO")).isEqualTo("hi");
140         assertThat(StringUtil.toLowerCase("  hI", "hI")).isEqualTo("  hi");
141     }
142     */
143 
144     @Test
145     public void testSingleQuote() {
146         assertThat(StringUtil.singleQuote("")).isEqualTo("''");
147         assertThat(StringUtil.singleQuote(null)).isEqualTo("''");
148         assertThat(StringUtil.singleQuote("Hi World")).isEqualTo("'Hi World'");
149         assertThat(StringUtil.singleQuote(" Hi World")).isEqualTo("' Hi World'");
150     }
151 
152     @Test
153     public void testNoneBlank() {
154         assertThat(StringUtil.noneBlank("hi")).isTrue();
155         assertThat(StringUtil.noneBlank("hi", "ho", "World")).isTrue();
156         assertThat(StringUtil.noneBlank("hi", "ho", null, "World")).isFalse();
157         assertThat(StringUtil.noneBlank("hi", "ho", "", "World")).isFalse();
158         assertThat(StringUtil.noneBlank(null)).isFalse();
159         assertThat(StringUtil.noneBlank("")).isFalse();
160     }
161 
162     @Test
163     public void testTrim() {
164         assertThat(StringUtil.trim(null)).isNull();
165         assertThat(StringUtil.trim("")).isEmpty();
166         assertThat(StringUtil.trim("     ")).isEmpty();
167         assertThat(StringUtil.trim("   hi  ")).isEqualTo("hi");
168     }
169 
170     @Test
171     public void testToStringObject() {
172         assertThat(StringUtil.toString(null)).isNull();
173         assertThat(StringUtil.toString("")).isEqualTo("");
174         assertThat(StringUtil.toString("hi")).isEqualTo("hi");
175         assertThat(StringUtil.toString(BigDecimal.TEN)).isEqualTo("10");
176     }
177 
178     @Test
179     public void testToStringOrEmpty() {
180         assertThat(StringUtil.toStringOrEmpty(null)).isEqualTo("");
181         assertThat(StringUtil.toStringOrEmpty("")).isEqualTo("");
182         assertThat(StringUtil.toStringOrEmpty("hi")).isEqualTo("hi");
183         assertThat(StringUtil.toStringOrEmpty(BigDecimal.TEN)).isEqualTo("10");
184     }
185 
186     @Test
187     public void testEmptyIfNull() {
188         assertThat(StringUtil.emptyIfNull(null)).isEmpty();
189         assertThat(StringUtil.emptyIfNull("")).isEmpty();
190         assertThat(StringUtil.emptyIfNull("Hi")).isEqualTo("Hi");
191     }
192 
193     @Test
194     public void testConcat() {
195         assertThat(StringUtil.concat(null)).isEmpty();
196         assertThat(StringUtil.concat("")).isEmpty();
197         assertThat(StringUtil.concat("h", "o", "World")).isEqualTo("hoWorld");
198         assertThat(StringUtil.concat("h", null, "World")).isEqualTo("hnullWorld");
199         assertThat(StringUtil.concat("h", null, "World", "")).isEqualTo("hnullWorld");
200         assertThat(StringUtil.concat("h", null, "World", null)).isEqualTo("hnullWorldnull");
201     }
202 
203     @Test
204     public void testConcatWithSpaces() {
205         assertThat(StringUtil.concatWithSpaces(null)).isEmpty();
206         assertThat(StringUtil.concatWithSpaces("")).isEmpty();
207         assertThat(StringUtil.concatWithSpaces("h", "o", "World")).isEqualTo("h o World");
208         assertThat(StringUtil.concatWithSpaces("h", null, "World")).isEqualTo("h null World");
209         assertThat(StringUtil.concatWithSpaces("h", null, "World", "")).isEqualTo("h null World ");
210         assertThat(StringUtil.concatWithSpaces("h", null, "World", null)).isEqualTo("h null World null");
211     }
212 
213     @Test
214     public void testIsWildcardOrNull() {
215         assertThat(StringUtil.isWildcardOrNull(null)).isTrue();
216         assertThat(StringUtil.isWildcardOrNull("")).isFalse();
217         assertThat(StringUtil.isWildcardOrNull("*")).isTrue();
218         assertThat(StringUtil.isWildcardOrNull("**")).isFalse();
219         assertThat(StringUtil.isWildcardOrNull(" ")).isFalse();
220         assertThat(StringUtil.isWildcardOrNull(" Hello ")).isFalse();
221     }
222 
223     @Test
224     public void testBoxify() {
225         assertThat(StringUtil.boxify('+', null)).isEmpty();
226         assertThat(StringUtil.boxify('+', "")).isEmpty();
227         assertThat(StringUtil.boxify('+', "X")).isEqualTo(System.lineSeparator() + "+++++" + System.lineSeparator() //
228                 + "+ X +" + System.lineSeparator() //
229                 + "+++++" + System.lineSeparator());
230 
231         assertThat(StringUtil.boxify((char) 0, "Hi")).isEmpty();
232     }
233 
234     @Test
235     public void testIfNotBlank() {
236         assertThat(StringUtil.ifNotBlank(null, (t) -> fail("null should not have been called"))).isFalse();
237         assertThat(StringUtil.ifNotBlank("", (t) -> fail("Empty should not have been called"))).isFalse();
238         assertThat(StringUtil.ifNotBlank("Hello", new Consumer<String>() {
239             @Override
240             public void accept(String t) {
241             }
242         })).isTrue();
243     }
244 
245     @Test
246     public void testAllEquals() {
247         assertThat(StringUtil.allEquals(null, null)).isTrue();
248         assertThat(StringUtil.allEquals(null, null, null)).isTrue();
249         assertThat(StringUtil.allEquals("", "", "")).isTrue();
250         assertThat(StringUtil.allEquals("", "", " ")).isFalse();
251         assertThat(StringUtil.allEquals(" ", " ", " ")).isTrue();
252         assertThat(StringUtil.allEquals(" ", null)).isFalse();
253         assertThat(StringUtil.allEquals(" ", null, null)).isFalse();
254         assertThat(StringUtil.allEquals(" ", null, " ")).isFalse();
255         assertThat(StringUtil.allEquals("X", null, "X")).isFalse();
256         assertThat(StringUtil.allEquals("X", "X", "X")).isTrue();
257         assertThat(StringUtil.allEquals(null, "X", "X")).isFalse();
258     }
259 
260     @Test
261     public void testEqualsAnyIgnoreCaseStringStringArray() {
262         assertThat(StringUtil.equalsAnyIgnoreCase(null, null, null)).isTrue();
263         assertThat(StringUtil.equalsAnyIgnoreCase(null, (String[]) null)).isTrue();
264         assertThat(StringUtil.equalsAnyIgnoreCase("X", (String[]) null)).isFalse();
265         assertThat(StringUtil.equalsAnyIgnoreCase(null, "", "")).isFalse();
266         assertThat(StringUtil.equalsAnyIgnoreCase(null, "", null)).isTrue();
267         assertThat(StringUtil.equalsAnyIgnoreCase("", "", null)).isTrue();
268         assertThat(StringUtil.equalsAnyIgnoreCase("X", "", null)).isFalse();
269         assertThat(StringUtil.equalsAnyIgnoreCase("X", "", null, "X")).isTrue();
270         assertThat(StringUtil.equalsAnyIgnoreCase("X", "", null, "x")).isTrue();
271         assertThat(StringUtil.equalsAnyIgnoreCase("X", "", "ABC", "X")).isTrue();
272         assertThat(StringUtil.equalsAnyIgnoreCase("X", "", "DEX", "x")).isTrue();
273     }
274 
275     @Test
276     public void testEqualsAnyIgnoreCaseStringString() {
277         assertThat(StringUtil.equalsAnyIgnoreCase((String) null, (String) null)).isTrue();
278         assertThat(StringUtil.equalsAnyIgnoreCase((String) null, "Hi")).isFalse();
279         assertThat(StringUtil.equalsAnyIgnoreCase("*", "Hi")).isTrue();
280         assertThat(StringUtil.equalsAnyIgnoreCase("Hi", "*")).isFalse();
281         assertThat(StringUtil.equalsAnyIgnoreCase("Hi", "NO")).isFalse();
282         assertThat(StringUtil.equalsAnyIgnoreCase("Hi", "Hi")).isTrue();
283         assertThat(StringUtil.equalsAnyIgnoreCase("Hi", "HI")).isTrue();
284         assertThat(StringUtil.equalsAnyIgnoreCase(null, "HI")).isFalse();
285         assertThat(StringUtil.equalsAnyIgnoreCase("Hi", (String) null)).isFalse();
286     }
287 
288     @Test
289     public void testReplaceTokenStringStringString() {
290         assertThat(StringUtil.replaceToken(null, null, null)).isNull();
291         assertThat(StringUtil.replaceToken("", null, null)).isEmpty();
292         assertThat(StringUtil.replaceToken("", "", null)).isEmpty();
293         assertThat(StringUtil.replaceToken("", "", "")).isEmpty();
294         assertThat(StringUtil.replaceToken("Hello", "YO", "!")).isEqualTo("Hello");
295         assertThat(StringUtil.replaceToken("Hello %YO%", "YO", "you")).isEqualTo("Hello you");
296         assertThat(StringUtil.replaceToken("Hello %YO%", "YI", "you")).isEqualTo("Hello %YO%");
297         assertThat(StringUtil.replaceToken("Hello %YO%", "YO", "")).isEqualTo("Hello ");
298         assertThat(StringUtil.replaceToken("Hello %YO%", "YO", null)).isEqualTo("Hello null");
299     }
300 
301     @Test
302     public void testReplaceTokenStringStringObject() {
303         assertThat(StringUtil.replaceToken(null, null, null)).isNull();
304         assertThat(StringUtil.replaceToken("", null, null)).isEmpty();
305         assertThat(StringUtil.replaceToken("", "", null)).isEmpty();
306         assertThat(StringUtil.replaceToken(null, "", "")).isNull();
307         assertThat(StringUtil.replaceToken(null, "A", "BC")).isNull();
308         assertThat(StringUtil.replaceToken("Hello %YO%", "YO", Long.valueOf(1234))).isEqualTo("Hello 1234");
309         assertThat(StringUtil.replaceToken("Hello %YO%", "YO", (Object) null)).isEqualTo("Hello null");
310         assertThat(StringUtil.replaceToken("Hello %YO%", "YU", (Object) null)).isEqualTo("Hello %YO%");
311     }
312 
313     @Test
314     public void testEqualsIgnoreCaseOrValueIsWildcard() {
315         assertThat(StringUtil.equalsIgnoreCaseOrValueIsWildcard(null, null)).isTrue();
316         assertThat(StringUtil.equalsIgnoreCaseOrValueIsWildcard("", "")).isTrue();
317         assertThat(StringUtil.equalsIgnoreCaseOrValueIsWildcard("", "A")).isFalse();
318         assertThat(StringUtil.equalsIgnoreCaseOrValueIsWildcard(null, "A")).isFalse();
319         assertThat(StringUtil.equalsIgnoreCaseOrValueIsWildcard("", null)).isFalse();
320         assertThat(StringUtil.equalsIgnoreCaseOrValueIsWildcard("A", null)).isFalse();
321         assertThat(StringUtil.equalsIgnoreCaseOrValueIsWildcard("*", null)).isTrue();
322         assertThat(StringUtil.equalsIgnoreCaseOrValueIsWildcard("*", "")).isTrue();
323         assertThat(StringUtil.equalsIgnoreCaseOrValueIsWildcard("ABC", "*")).isFalse();
324         assertThat(StringUtil.equalsIgnoreCaseOrValueIsWildcard("aBC", "ABC")).isTrue();
325         assertThat(StringUtil.equalsIgnoreCaseOrValueIsWildcard("*", "ABC")).isTrue();
326         assertThat(StringUtil.equalsIgnoreCaseOrValueIsWildcard("**", "ABC")).isFalse();
327         assertThat(StringUtil.equalsIgnoreCaseOrValueIsWildcard("AB C", "ab c")).isTrue();
328     }
329 
330     @Test
331     public void testWrapText() {
332         assertThat(StringUtil.wrapText(null, "#", 5)).isNull();
333         assertThat(StringUtil.wrapText("", "#", 5)).isEmpty();
334         assertThat(StringUtil.wrapText("1234", "#", 5)).isEqualTo("1234");
335         assertThat(StringUtil.wrapText("12345 6789", "#", 5)).isEqualTo("12345#6789");
336         assertThat(StringUtil.wrapText("123456 789", "#", 5)).isEqualTo("123456#789");
337         assertThat(StringUtil.wrapText("12345 789101 1213", "#", 5)).isEqualTo("12345#789101#1213");
338         assertThat(StringUtil.wrapText("12345 789101 12134", "#", 5)).isEqualTo("12345#789101#12134");
339         assertThat(StringUtil.wrapText("12345 789101 12134 ", "#", 5)).isEqualTo("12345#789101#12134#");
340         assertThat(StringUtil.wrapText(" 12345 789101 12134 ", "#", 5)).isEqualTo("#12345#789101#12134#");
341         assertThat(StringUtil.wrapText(" 12345 789101  12134 ", "#", 5)).isEqualTo("#12345#789101##12134#");
342         assertThat(StringUtil.wrapText("123345#6789", "#", 5)).isEqualTo("123345#6789");
343     }
344 
345     @Test
346     public void testProcessCaseTreatment() {
347         assertThat(StringUtil.processCaseTreatment(null, CaseTreatment.LOWER_CASE)).isNull();
348         assertThat(StringUtil.processCaseTreatment(null, CaseTreatment.UNCHANGED)).isNull();
349         assertThat(StringUtil.processCaseTreatment(null, CaseTreatment.UPPER_CASE)).isNull();
350 
351         assertThat(StringUtil.processCaseTreatment(" Hello World ", CaseTreatment.LOWER_CASE)).isEqualTo(" hello world ");
352         assertThat(StringUtil.processCaseTreatment(" Hello World ", CaseTreatment.UNCHANGED)).isEqualTo(" Hello World ");
353         assertThat(StringUtil.processCaseTreatment(" Hello World ", CaseTreatment.UPPER_CASE)).isEqualTo(" HELLO WORLD ");
354 
355         assertThat(StringUtil.processCaseTreatment("", CaseTreatment.LOWER_CASE)).isEmpty();
356         assertThat(StringUtil.processCaseTreatment("", CaseTreatment.UNCHANGED)).isEmpty();
357         assertThat(StringUtil.processCaseTreatment("", CaseTreatment.UPPER_CASE)).isEmpty();
358     }
359 
360     @Test
361     public void testAnyEmpty() {
362         assertThat(StringUtil.anyEmpty()).isTrue();
363         assertThat(StringUtil.anyEmpty(null)).isTrue();
364         assertThat(StringUtil.anyEmpty(null, null)).isTrue();
365         assertThat(StringUtil.anyEmpty("", null)).isTrue();
366         assertThat(StringUtil.anyEmpty("", "")).isTrue();
367         assertThat(StringUtil.anyEmpty("X", "X")).isFalse();
368         assertThat(StringUtil.anyEmpty("X", "X", null)).isTrue();
369         assertThat(StringUtil.anyEmpty("X", "X", "")).isTrue();
370     }
371 
372     @Test
373     public void testReturnIfNotNull() {
374         assertThat(StringUtil.returnIfNotNull(null, null)).isNull();
375         assertThat(StringUtil.returnIfNotNull(null, "")).isEmpty();
376         assertThat(StringUtil.returnIfNotNull(null, "ABC")).isEqualTo("ABC");
377         assertThat(StringUtil.returnIfNotNull("", "ABC")).isEqualTo("");
378         assertThat(StringUtil.returnIfNotNull("DEF", "ABC")).isEqualTo("DEF");
379         assertThat(StringUtil.returnIfNotNull("DEF", null)).isEqualTo("DEF");
380     }
381 
382     @Test
383     public void testFirstCharToUpper() {
384         assertThat(StringUtil.firstCharToUpper(null)).isNull();
385         assertThat(StringUtil.firstCharToUpper("")).isEmpty();
386         assertThat(StringUtil.firstCharToUpper("A")).isEqualTo("A");
387         assertThat(StringUtil.firstCharToUpper("a")).isEqualTo("A");
388         assertThat(StringUtil.firstCharToUpper("belgium")).isEqualTo("Belgium");
389         assertThat(StringUtil.firstCharToUpper("belgium brussels")).isEqualTo("Belgium brussels");
390         assertThat(StringUtil.firstCharToUpper(" belgium brussels")).isEqualTo(" belgium brussels");
391     }
392 
393     @Test
394     public void testPrepareForNumericParsing() {
395         assertThat(StringUtil.prepareForNumericParsing(null)).isEmpty();
396         assertThat(StringUtil.prepareForNumericParsing("")).isEmpty();
397         assertThat(StringUtil.prepareForNumericParsing("1234")).isEqualTo("1234");
398         assertThat(StringUtil.prepareForNumericParsing(" 1,234 ")).isEqualTo("1234");
399         assertThat(StringUtil.prepareForNumericParsing(" 1,234.00 ")).isEqualTo("1234.00");
400         assertThat(StringUtil.prepareForNumericParsing(" \"1,234.00\" ")).isEqualTo("1234.00");
401     }
402 
403     @Test
404     public void testNullIfEmpty() {
405         assertThat(StringUtil.nullIfEmpty(null)).isNull();
406         assertThat(StringUtil.nullIfEmpty("")).isNull();
407         assertThat(StringUtil.nullIfEmpty("AB")).isEqualTo("AB");
408     }
409 
410     @Test
411     public void testAsList() {
412         assertThat(StringUtil.asList(null, "||")).isEmpty();
413         assertThat(StringUtil.asList(new String[] { "A", "B" }, "||")).isEqualTo("A||B");
414         assertThat(StringUtil.asList(new String[] { "A", "B", "C" }, "||")).isEqualTo("A||B||C");
415         assertThat(StringUtil.asList(new String[] { "A", "", "C" }, "||")).isEqualTo("A||||C");
416         assertThat(StringUtil.asList(new String[] { "A", null, "C" }, "||")).isEqualTo("A||null||C");
417     }
418 
419 }