1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.supercsv.cellprocessor;
17
18 import static org.junit.Assert.assertEquals;
19 import static org.supercsv.SuperCsvTestUtils.ANONYMOUS_CSVCONTEXT;
20
21 import org.junit.Before;
22 import org.junit.Test;
23 import org.supercsv.cellprocessor.ift.CellProcessor;
24 import org.supercsv.exception.SuperCsvCellProcessorException;
25 import org.supercsv.mock.IdentityTransform;
26
27
28
29
30
31
32
33 public class TruncateTest {
34
35 private static final int MAX_SIZE = 3;
36 private static final String SUFFIX = "...";
37
38 private CellProcessor processor;
39 private CellProcessor processor2;
40 private CellProcessor processorChain;
41 private CellProcessor processorChain2;
42
43
44
45
46 @Before
47 public void setUp() {
48 processor = new Truncate(MAX_SIZE);
49 processor2 = new Truncate(MAX_SIZE, SUFFIX);
50 processorChain = new Truncate(MAX_SIZE, new IdentityTransform());
51 processorChain2 = new Truncate(MAX_SIZE, SUFFIX, new IdentityTransform());
52 }
53
54
55
56
57 @Test
58 public void testInputSameAsMax() {
59 String input = "abc";
60 assertEquals(input, processor.execute(input, ANONYMOUS_CSVCONTEXT));
61 assertEquals(input, processor2.execute(input, ANONYMOUS_CSVCONTEXT));
62 assertEquals(input, processorChain.execute(input, ANONYMOUS_CSVCONTEXT));
63 assertEquals(input, processorChain2.execute(input, ANONYMOUS_CSVCONTEXT));
64 }
65
66
67
68
69 @Test
70 public void testInputLongerThanMax() {
71 String input = "abcd";
72 String expected = "abc";
73 String expectedSuffix = expected + "...";
74
75
76 assertEquals(expected, processor.execute(input, ANONYMOUS_CSVCONTEXT));
77 assertEquals(expected, processorChain.execute(input, ANONYMOUS_CSVCONTEXT));
78
79
80 assertEquals(expectedSuffix, processor2.execute(input, ANONYMOUS_CSVCONTEXT));
81 assertEquals(expectedSuffix, processorChain2.execute(input, ANONYMOUS_CSVCONTEXT));
82 }
83
84
85
86
87 @Test(expected = IllegalArgumentException.class)
88 public void testWithInvalidMax() {
89 processor = new Truncate(0);
90 }
91
92
93
94
95 @Test(expected = IllegalArgumentException.class)
96 public void testWithInvalidMaxChained() {
97 processorChain = new Truncate(0, new IdentityTransform());
98 }
99
100
101
102
103 @Test(expected = SuperCsvCellProcessorException.class)
104 public void testWithNull() {
105 processor.execute(null, ANONYMOUS_CSVCONTEXT);
106 }
107
108
109
110
111 @Test(expected = NullPointerException.class)
112 public void testConstructionWithNullSuffix() {
113 new Truncate(MAX_SIZE, (String) null);
114 }
115
116 }