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 }