1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.supercsv.exception;
17
18 import static org.junit.Assert.assertEquals;
19 import static org.junit.Assert.assertNull;
20 import static org.junit.Assert.fail;
21 import static org.supercsv.SuperCsvTestUtils.ANONYMOUS_CSVCONTEXT;
22
23 import org.junit.Test;
24 import org.supercsv.cellprocessor.ift.CellProcessor;
25 import org.supercsv.mock.IdentityTransform;
26 import org.supercsv.util.CsvContext;
27
28
29
30
31
32
33 public class SuperCsvCellProcessorExceptionTest {
34
35 private static final String MSG = "Cell processing failed!";
36 private static final Throwable THROWABLE = new RuntimeException("I'm the cause of the problem");
37 private static final CellProcessor PROCESSOR = new IdentityTransform();
38
39
40
41
42 @Test
43 public void testConstuctor1() {
44 SuperCsvCellProcessorException e = new SuperCsvCellProcessorException(MSG, ANONYMOUS_CSVCONTEXT, PROCESSOR);
45 assertEquals(MSG, e.getMessage());
46 assertEquals(ANONYMOUS_CSVCONTEXT, e.getCsvContext());
47 assertEquals(PROCESSOR, e.getProcessor());
48
49
50 e = new SuperCsvCellProcessorException(null, (CsvContext) null, (CellProcessor) null);
51 assertNull(e.getMessage());
52 assertNull(e.getCsvContext());
53 assertNull(e.getProcessor());
54 }
55
56
57
58
59 @Test
60 public void testConstuctor2() {
61 SuperCsvCellProcessorException e = new SuperCsvCellProcessorException(MSG, ANONYMOUS_CSVCONTEXT, PROCESSOR, THROWABLE);
62 assertEquals(MSG, e.getMessage());
63 assertEquals(ANONYMOUS_CSVCONTEXT, e.getCsvContext());
64 assertEquals(PROCESSOR, e.getProcessor());
65 assertEquals(THROWABLE, e.getCause());
66
67
68 e = new SuperCsvCellProcessorException(null, null, null, (Throwable) null);
69 assertNull(e.getMessage());
70 assertNull(e.getCsvContext());
71 assertNull(e.getProcessor());
72 assertNull(e.getCause());
73 }
74
75
76
77
78 @Test
79 public void testConstuctor3() {
80
81
82 SuperCsvCellProcessorException e = new SuperCsvCellProcessorException(String.class, 123, ANONYMOUS_CSVCONTEXT, PROCESSOR);
83 assertEquals("the input value should be of type java.lang.String but is java.lang.Integer", e.getMessage());
84 assertEquals(ANONYMOUS_CSVCONTEXT, e.getCsvContext());
85 assertEquals(PROCESSOR, e.getProcessor());
86
87
88 e = new SuperCsvCellProcessorException(String.class, null, ANONYMOUS_CSVCONTEXT, PROCESSOR);
89 assertEquals("the input value should be of type java.lang.String but is null", e.getMessage());
90 assertEquals(ANONYMOUS_CSVCONTEXT, e.getCsvContext());
91 assertEquals(PROCESSOR, e.getProcessor());
92
93
94 try {
95 new SuperCsvCellProcessorException(null, null, null, (CellProcessor) null);
96 fail("should have thrown NullPointerException");
97 } catch (NullPointerException npe){
98 assertEquals("expectedType should not be null", npe.getMessage());
99 }
100 }
101
102
103
104
105 @Test
106 public void testCsvContext() {
107
108 CsvContext rc = new CsvContext(1, 2, 3);
109
110
111
112 CsvContext tc = new CsvContext(rc.getLineNumber(), rc.getRowNumber(), rc.getColumnNumber());
113
114 SuperCsvCellProcessorException e = new SuperCsvCellProcessorException
115 (String.class, 123, tc, PROCESSOR);
116
117
118 assertEquals(rc, e.getCsvContext());
119
120
121 tc.setColumnNumber(2*rc.getColumnNumber() + 50);
122
123
124 assertEquals(rc, e.getCsvContext());
125 }
126
127 }