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.junit.Assert.assertTrue;
20  import static org.supercsv.SuperCsvTestUtils.ANONYMOUS_CSVCONTEXT;
21  
22  import java.util.ArrayList;
23  import java.util.Arrays;
24  import java.util.Date;
25  import java.util.HashSet;
26  import java.util.List;
27  import java.util.Set;
28  
29  import org.junit.Before;
30  import org.junit.Test;
31  import org.supercsv.mock.IdentityTransform;
32  
33  
34  
35  
36  
37  
38  public class CollectorTest {
39  	
40  	private Collector listCollector;
41  	private Collector setCollector;
42  	private Collector chainedCollector;
43  	private List<Object> list;
44  	private Set<Object> set;
45  	private List<Object> chainedList;
46  	private List<Object> input = Arrays.asList(new Object[] { "one", null, 2, 3.0, 2, null, true, new Date() });
47  	private final int duplicates = 2;
48  	
49  	
50  
51  
52  	@Before
53  	public void setUp() {
54  		list = new ArrayList<Object>();
55  		set = new HashSet<Object>();
56  		chainedList = new ArrayList<Object>();
57  		listCollector = new Collector(list);
58  		setCollector = new Collector(set);
59  		chainedCollector = new Collector(chainedList, new IdentityTransform());
60  	}
61  	
62  	
63  
64  
65  	@Test
66  	public void testListCollector() {
67  		
68  		for( Object o : input ) {
69  			listCollector.execute(o, ANONYMOUS_CSVCONTEXT);
70  		}
71  		
72  		assertTrue(listCollector.getCollection() == list);
73  		assertEquals(input.size(), list.size());
74  		for( int i = 0; i < input.size(); i++ ) {
75  			assertEquals(input.get(i), list.get(i));
76  		}
77  		
78  	}
79  	
80  	
81  
82  
83  	@Test
84  	public void testSetCollector() {
85  		
86  		for( Object o : input ) {
87  			setCollector.execute(o, ANONYMOUS_CSVCONTEXT);
88  		}
89  		
90  		assertTrue(setCollector.getCollection() == set);
91  		assertEquals(input.size() - duplicates, set.size());
92  		for( Object o : input ) {
93  			assertTrue(set.contains(o));
94  		}
95  		
96  	}
97  	
98  	
99  
100 
101 	@Test
102 	public void testChainedCollector() {
103 		
104 		for( Object o : input ) {
105 			chainedCollector.execute(o, ANONYMOUS_CSVCONTEXT);
106 		}
107 		
108 		assertTrue(chainedCollector.getCollection() == chainedList);
109 		assertEquals(input.size(), chainedList.size());
110 		for( int i = 0; i < input.size(); i++ ) {
111 			assertEquals(input.get(i), chainedList.get(i));
112 		}
113 		
114 	}
115 	
116 	
117 
118 
119 	@Test(expected = NullPointerException.class)
120 	public void testConstructorWithNullCollection() {
121 		new Collector(null);
122 	}
123 	
124 	
125 
126 
127 	@Test(expected = NullPointerException.class)
128 	public void testChainedConstructorWithNullCollection() {
129 		new Collector(null, new IdentityTransform());
130 	}
131 	
132 }