1 package de.dlr.shepard.common.util;
2
3 import static org.junit.jupiter.api.Assertions.assertEquals;
4
5 import java.util.Arrays;
6 import org.junit.jupiter.api.Test;
7
8 public class StringListConverterTest {
9
10 private final String specialCharacters = "!\"§$%&/()=?``'_:;-*\\{}[]^<>";
11 private final String SPLIT_CHAR = StringListConverter.SPLIT_CHAR;
12
13 @Test
14 public void convertToDatabaseColumn_concatListOfStringsToOneString_success() {
15 StringListConverter converter = new StringListConverter();
16 var data = new String[] { "Hello", "world", "!" };
17 var expected = "Hello" + SPLIT_CHAR + "world" + SPLIT_CHAR + "!";
18
19 var actual = converter.convertToDatabaseColumn(Arrays.asList(data));
20
21 assertEquals(expected, actual);
22 }
23
24 @Test
25 public void convertToDatabaseColumn_containsEmptyString_willNotBeRemoved() {
26 StringListConverter converter = new StringListConverter();
27 var data = new String[] { "Hello", "", "world" };
28 var expected = "Hello" + SPLIT_CHAR + SPLIT_CHAR + "world";
29
30 var actual = converter.convertToDatabaseColumn(Arrays.asList(data));
31
32 assertEquals(expected, actual);
33 }
34
35 @Test
36 public void convertToDatabaseColumn_containsSpecialCharacters_noConflicts() {
37 StringListConverter converter = new StringListConverter();
38 var data = new String[] { specialCharacters, "\r\n", "<html>" };
39 var expected = specialCharacters + SPLIT_CHAR + "\r\n" + SPLIT_CHAR + "<html>";
40
41 var actual = converter.convertToDatabaseColumn(Arrays.asList(data));
42
43 assertEquals(expected, actual);
44 }
45
46 @Test
47 public void convertToEntityAttribute_splitStringToArray_success() {
48 StringListConverter converter = new StringListConverter();
49 var data = "Hello|world|!";
50 var expected = Arrays.asList(new String[] { "Hello", "world", "!" });
51
52 var actual = converter.convertToEntityAttribute(data);
53
54 assertEquals(expected, actual);
55 }
56
57 @Test
58 public void convertToEntityAttribute_containsEmptyString_indexIsCreated() {
59 StringListConverter converter = new StringListConverter();
60 var data = "Hello" + SPLIT_CHAR + SPLIT_CHAR + "world";
61 var expected = Arrays.asList(new String[] { "Hello", "", "world" });
62
63 var actual = converter.convertToEntityAttribute(data);
64
65 assertEquals(expected, actual);
66 }
67
68 @Test
69 public void convertToEntityAttribute_containsSpecialCharacters_noConflicts() {
70 StringListConverter converter = new StringListConverter();
71 var data = specialCharacters + SPLIT_CHAR + "\r\n" + SPLIT_CHAR + "<html>";
72 var expected = Arrays.asList(new String[] { specialCharacters, "\r\n", "<html>" });
73
74 var actual = converter.convertToEntityAttribute(data);
75
76 assertEquals(expected, actual);
77 }
78 }