View Javadoc
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  }