1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.supercsv.util;
17
18 import static org.junit.Assert.assertEquals;
19 import static org.junit.Assert.assertFalse;
20 import static org.junit.Assert.assertTrue;
21
22 import java.util.Arrays;
23
24 import org.junit.Test;
25
26
27
28
29
30
31 public class CsvContextTest {
32
33
34
35
36 @Test
37 public void testGettersAndSetters() {
38 final CsvContext context = new CsvContext(0, 0, 0);
39 context.setLineNumber(1);
40 context.setRowNumber(2);
41 context.setColumnNumber(3);
42 final Object[] rowSource = new Object[] { "one", "two", "three" };
43 context.setRowSource(Arrays.asList(rowSource));
44 assertEquals(1, context.getLineNumber());
45 assertEquals(2, context.getRowNumber());
46 assertEquals(3, context.getColumnNumber());
47 assertTrue(Arrays.equals(rowSource, context.getRowSource().toArray()));
48
49 }
50
51
52
53
54 @Test
55 public void testHashCode() {
56
57 final CsvContext context1 = new CsvContext(1, 2, 3);
58 final CsvContext context2 = new CsvContext(1, 2, 3);
59 assertEquals(context1.hashCode(), context2.hashCode());
60
61
62 final CsvContext contextWithSource1 = new CsvContext(1, 2, 3);
63 contextWithSource1.setRowSource(Arrays.asList(new Object[] { "one", "two", "three" }));
64 final CsvContext contextWithSource2 = new CsvContext(1, 2, 3);
65 contextWithSource2.setRowSource(Arrays.asList(new Object[] { "one", "two", "three" }));
66 assertEquals(contextWithSource1.hashCode(), contextWithSource2.hashCode());
67 }
68
69
70
71
72 @Test
73 public void testToString() {
74
75
76 final CsvContext context1 = new CsvContext(1, 2, 3);
77 assertEquals("{lineNo=1, rowNo=2, columnNo=3, rowSource=null}", context1.toString());
78
79
80 final CsvContext context2 = new CsvContext(1, 2, 3);
81 context2.setRowSource(Arrays.asList(new Object[] { "one", "two", "three" }));
82 assertEquals("{lineNo=1, rowNo=2, columnNo=3, rowSource=[one, two, three]}", context2.toString());
83
84 }
85
86
87
88
89 @Test
90 public void testEquals() {
91
92 final CsvContext context = new CsvContext(1, 2, 3);
93
94 final CsvContext contextWithSource = new CsvContext(1, 2, 3);
95 contextWithSource.setRowSource(Arrays.asList(new Object[] { "one", "two", "three" }));
96
97
98 assertTrue(context.equals(context));
99
100
101 assertFalse(context.equals(null));
102
103
104 assertFalse(context.equals("A String, not a CsvContext!"));
105
106
107 assertFalse(context.equals(new CsvContext(1, 2, 4)));
108
109
110 assertFalse(context.equals(new CsvContext(1, 4, 3)));
111
112
113 assertFalse(context.equals(new CsvContext(4, 2, 3)));
114
115
116 assertFalse(context.equals(contextWithSource));
117
118
119 final CsvContext contextWithDifferentSource = new CsvContext(1, 2, 3);
120 contextWithDifferentSource.setRowSource(Arrays.asList(new Object[] { "four", "five", "six" }));
121 assertFalse(contextWithSource.equals(contextWithDifferentSource));
122
123
124 assertTrue(context.equals(new CsvContext(1, 2, 3)));
125
126
127 final CsvContext same = new CsvContext(1, 2, 3);
128 same.setRowSource(Arrays.asList(new Object[] { "one", "two", "three" }));
129 assertTrue(contextWithSource.equals(same));
130 }
131
132 @Test
133 public void testCopyConstructor() {
134
135
136 CsvContext original = new CsvContext(1,2,3);
137 CsvContext clone = new CsvContext(original);
138 assertFalse(original == clone);
139 assertEquals(original, clone);
140
141
142 original.setRowSource(Arrays.asList(new Object[] { "four", "five", "six" }));
143 CsvContext clone2 = new CsvContext(original);
144 assertFalse(original == clone2);
145 assertEquals(original, clone2);
146
147
148 original.setRowSource(Arrays.asList(new Object[] { null, "five", new Integer(6) }));
149 CsvContext clone3 = new CsvContext(original);
150 assertFalse(original == clone3);
151 assertEquals(original, clone3);
152 }
153 }