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.assertNull;
21  import static org.junit.Assert.assertTrue;
22  
23  import java.util.Arrays;
24  import java.util.HashSet;
25  import java.util.Set;
26  
27  import org.junit.Before;
28  import org.junit.Test;
29  
30  
31  
32  
33  
34  
35  public class ThreeDHashMapTest {
36  	
37  	
38  	private ThreeDHashMap<String, String, String, Integer> personMap;
39  	
40  	
41  
42  
43  	@Before
44  	public void setUp() {
45  		personMap = new ThreeDHashMap<String, String, String, Integer>();
46  		personMap.set("Australia", "Brisbane", "Jim", 26);
47  		personMap.set("Australia", "Brisbane", "Jane", 57);
48  		personMap.set("Australia", "Sydney", "Harry", 19);
49  		personMap.set("New Zealand", "Auckland", "Sally", 34);
50  		personMap.set("New Zealand", "Wellington", "John", 88);
51  		personMap.set("United Kingdom", "London", "Elizabeth", 34);
52  		personMap.set("India", "Mumbai", "Vernon", 27);
53  	}
54  	
55  	
56  
57  
58  	@Test
59  	public void testContainsKeyWithTwoParams() {
60  		
61  		final String firstKey = "Australia";
62  		final String secondKey = "Sydney";
63  		
64  		
65  		assertTrue(personMap.containsKey(firstKey, secondKey));
66  		
67  		
68  		assertFalse(personMap.containsKey("invalid", secondKey));
69  		
70  		
71  		assertFalse(personMap.containsKey(firstKey, "invalid"));
72  		
73  	}
74  	
75  	
76  
77  
78  	@Test
79  	public void testContainsKeyWithThreeParams() {
80  		
81  		final String firstKey = "United Kingdom";
82  		final String secondKey = "London";
83  		final String thirdKey = "Elizabeth";
84  		
85  		
86  		assertTrue(personMap.containsKey(firstKey, secondKey, thirdKey));
87  		
88  		
89  		assertFalse(personMap.containsKey("invalid", secondKey, thirdKey));
90  		
91  		
92  		assertFalse(personMap.containsKey(firstKey, "invalid", thirdKey));
93  		
94  		
95  		assertFalse(personMap.containsKey(firstKey, secondKey, "invalid"));
96  		
97  	}
98  	
99  	
100 
101 
102 	@Test
103 	public void testGet() {
104 		
105 		
106 		assertNull(personMap.get("invalid"));
107 		
108 		assertEquals(2, personMap.get("Australia").size());
109 		assertEquals(2, personMap.get("New Zealand").size());
110 		assertEquals(1, personMap.get("United Kingdom").size());
111 		assertEquals(1, personMap.get("India").size());
112 	}
113 	
114 	
115 
116 
117 	@Test
118 	public void testGetAs2d() {
119 		
120 		
121 		assertEquals(0, personMap.getAs2d("invalid").size());
122 		
123 		assertEquals(2, personMap.getAs2d("Australia").size());
124 		assertEquals(2, personMap.getAs2d("New Zealand").size());
125 		assertEquals(1, personMap.getAs2d("United Kingdom").size());
126 		assertEquals(1, personMap.getAs2d("India").size());
127 	}
128 	
129 	
130 
131 
132 	@Test
133 	public void testGetWithTwoParams() {
134 		
135 		
136 		assertNull(personMap.get("United States", "New York"));
137 		
138 		
139 		assertNull(personMap.get("India", "Chennai"));
140 		
141 		assertEquals(2, personMap.get("Australia", "Brisbane").size());
142 		assertEquals(1, personMap.get("Australia", "Sydney").size());
143 		assertEquals(1, personMap.get("New Zealand", "Auckland").size());
144 		assertEquals(1, personMap.get("New Zealand", "Wellington").size());
145 		assertEquals(1, personMap.get("United Kingdom", "London").size());
146 		assertEquals(1, personMap.get("India", "Mumbai").size());
147 	}
148 	
149 	
150 
151 
152 	@Test
153 	public void testGetWithThreeParams() {
154 		personMap.get(null, null, null);
155 		
156 		
157 		assertNull(personMap.get("United States", "New York", "George"));
158 		
159 		
160 		assertNull(personMap.get("India", "Chennai", "Raj"));
161 		
162 		
163 		assertNull(personMap.get("India", "Mumbai", "Raj"));
164 		
165 		assertEquals(26, personMap.get("Australia", "Brisbane", "Jim").intValue());
166 		assertEquals(57, personMap.get("Australia", "Brisbane", "Jane").intValue());
167 		assertEquals(19, personMap.get("Australia", "Sydney", "Harry").intValue());
168 		assertEquals(34, personMap.get("New Zealand", "Auckland", "Sally").intValue());
169 		assertEquals(88, personMap.get("New Zealand", "Wellington", "John").intValue());
170 		assertEquals(34, personMap.get("United Kingdom", "London", "Elizabeth").intValue());
171 		assertEquals(27, personMap.get("India", "Mumbai", "Vernon").intValue());
172 	}
173 	
174 	
175 
176 
177 	@Test
178 	public void testSize() {
179 		assertEquals(4, personMap.size());
180 	}
181 	
182 	
183 
184 
185 	@Test
186 	public void testSizeWithOneParam() {
187 		
188 		
189 		assertEquals(0, personMap.size("United States"));
190 		
191 		assertEquals(2, personMap.size("Australia"));
192 		assertEquals(2, personMap.size("New Zealand"));
193 		assertEquals(1, personMap.size("United Kingdom"));
194 		assertEquals(1, personMap.size("India"));
195 	}
196 	
197 	
198 
199 
200 	@Test
201 	public void testSizeWithTwoParams() {
202 		
203 		
204 		assertEquals(0, personMap.size("United States", "New York"));
205 		
206 		
207 		assertEquals(0, personMap.size("India", "Chennai"));
208 		
209 		assertEquals(2, personMap.size("Australia", "Brisbane"));
210 		assertEquals(1, personMap.size("Australia", "Sydney"));
211 		assertEquals(1, personMap.size("New Zealand", "Auckland"));
212 		assertEquals(1, personMap.size("New Zealand", "Wellington"));
213 		assertEquals(1, personMap.size("United Kingdom", "London"));
214 		assertEquals(1, personMap.size("India", "Mumbai"));
215 	}
216 	
217 	
218 
219 
220 	@Test
221 	public void keySet() {
222 		final Set<String> expectedKeys = new HashSet<String>(Arrays.asList("Australia", "New Zealand",
223 			"United Kingdom", "India"));
224 		assertEquals(expectedKeys.size(), personMap.keySet().size());
225 		assertTrue(personMap.keySet().containsAll(expectedKeys));
226 	}
227 	
228 }