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 }