View Javadoc

1   package com.atlassian.core.util.collection;
2   
3   import junit.framework.TestCase;
4   
5   import java.util.Iterator;
6   import java.util.List;
7   import java.util.ArrayList;
8   
9   /**
10   *
11   */
12  public class TestEasyList extends TestCase
13  {
14      String[] letters = { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l" };
15  
16      public void testMergeListsWithItems()
17      {
18  
19          List<String>[] a = new List[3];
20  
21          // create three lists of four items
22          int j = 0;
23          a[0] = EasyList.createList(4);
24          for (int i = 0; i < letters.length; i++)
25          {
26              a[j].add(letters[i]);
27              if ((((i + 1) % 4) == 0) && (j < 2))
28              {
29                  j++;
30                  a[j] = EasyList.createList(4);
31              }
32          }
33  
34          List<String> d = EasyList.mergeLists(a[0], a[1], a[2]);
35  
36          // check they are all there
37          int i = 0;
38          for (Iterator<String> iter = d.iterator(); iter.hasNext(); i++)
39          {
40              String listLetter = iter.next();
41              assertEquals(letters[i], listLetter);
42          }
43      }
44  
45      public void testMergeListWithAllNulls()
46      {
47          List<Object>[] a = new List[3];
48          a[0] = null;
49          a[1] = null;
50          a[2] = null;
51          List d = EasyList.mergeLists(a[0], a[1], a[2]);
52  
53          assertEquals(d.size(), 0);
54      }
55  
56      public void testMergeListOneNull()
57      {
58          List<String>[] a = new List[3];
59          a[0] = EasyList.build("a");
60          a[1] = EasyList.build("b");
61          a[2] = null;
62          List<String> d = EasyList.mergeLists(a[0], a[1], a[2]);
63  
64          assertEquals(d.size(), 2);
65  
66          int i = 0;
67          for (Iterator<String> iter = d.iterator(); iter.hasNext(); i++)
68          {
69              String listLetter = iter.next();
70              assertEquals(letters[i], listLetter);
71          }
72  
73      }
74  
75      public void testMergeListTwoNulls()
76      {
77          List<String>[] a = new List[3];
78          a[0] = null;
79          a[1] = EasyList.build("a", "b", "c");
80          a[2] = null;
81          List<String> d = EasyList.mergeLists(a[0], a[1], a[2]);
82  
83          assertEquals(d.size(), 3);
84  
85          int i = 0;
86          for (Iterator<String> iter = d.iterator(); iter.hasNext(); i++)
87          {
88              String listLetter = iter.next();
89              assertEquals(letters[i], listLetter);
90          }
91      }
92  
93      public void testSplitListWithNull()
94      {
95          List<Object> input = null;
96          try
97          {
98              EasyList.shallowSplit(input, 5);
99              fail("Split method should have thrown exception");
100         }
101         catch (NullPointerException yay)
102         {}
103     }
104 
105     public void testSplitListWithSmallList()
106     {
107         List<String> input = new ArrayList<String>();
108         input.add("1");
109         input.add("2");
110         input.add("3");
111         input.add("4");
112         try
113         {
114             List<List<String>> res = EasyList.shallowSplit(input, 5);
115             assertNotNull(res);
116             assertEquals("Length", 1, res.size());
117             assertEquals("LengthSub", 4, res.get(0).size());
118         }
119         catch (Exception e)
120         {
121             fail("Split method throw exception: " + e);
122         }
123     }
124 
125     public void testSplitListWithEqualListSizeAndSublength()
126     {
127         List<String> input = new ArrayList<String>();
128         input.add("1");
129         input.add("2");
130         input.add("3");
131         input.add("4");
132         input.add("5");
133         try
134         {
135             List<List<String>> res = EasyList.shallowSplit(input, 5);
136             assertNotNull(res);
137             assertEquals("Length", 1, res.size());
138             assertEquals("LengthSub", 5, res.get(0).size());
139         }
140         catch (Exception e)
141         {
142             fail("Split method throw exception: " + e);
143         }
144     }
145 
146     public void testSplitListWithLargeList()
147     {
148         List<String> input = new ArrayList<String>();
149         input.add("1");
150         input.add("2");
151         input.add("3");
152         input.add("4");
153         input.add("5");
154         input.add("6");
155         try
156         {
157             List<List<String>> res = EasyList.shallowSplit(input, 5);
158             assertNotNull(res);
159             assertEquals("Length", 2, res.size());
160             assertEquals("LengthSub", 5, res.get(0).size());
161             assertEquals("LengthSub2", 1, res.get(1).size());
162         }
163         catch (Exception e)
164         {
165             fail("Split method throw exception: " + e);
166         }
167     }
168 
169     public void testSplitWithSameSizeList()
170     {
171         List<String> input = new ArrayList<String>();
172         input.add("1");
173         input.add("2");
174         input.add("3");
175         input.add("4");
176         try
177         {
178             List<List<String>> res = EasyList.shallowSplit(input, 2);
179             assertNotNull(res);
180             assertEquals("Length", 2, res.size());
181             assertEquals("LengthSub", 2, res.get(0).size());
182             assertEquals("LengthSub2", 2, res.get(1).size());
183         }
184         catch (Exception e)
185         {
186             fail("Split method throw exception: " + e);
187         }
188     }
189 
190     public void testBuild1()
191     {
192         List<String> list = EasyList.build("A");
193         assertEquals(1, list.size());
194         assertEquals("A", list.get(0));
195     }
196 
197     public void testBuild2()
198     {
199         List<String> list = EasyList.build("A", "B");
200         assertEquals(2, list.size());
201         assertEquals("A", list.get(0));
202         assertEquals("B", list.get(1));
203     }
204 
205     public void testBuild3()
206     {
207         List<String> list = EasyList.build("A", "B", "C");
208         assertEquals(3, list.size());
209         assertEquals("A", list.get(0));
210         assertEquals("B", list.get(1));
211         assertEquals("C", list.get(2));
212     }
213 
214     public void testBuild4()
215     {
216         List<String> list = EasyList.build("A", "B", "C", "D");
217         assertEquals(4, list.size());
218         assertEquals("A", list.get(0));
219         assertEquals("B", list.get(1));
220         assertEquals("C", list.get(2));
221         assertEquals("D", list.get(3));
222     }
223 
224     public void testBuild5()
225     {
226         List<String> list = EasyList.build("A", "B", "C", "D", "E");
227         assertEquals(5, list.size());
228         assertEquals("A", list.get(0));
229         assertEquals("B", list.get(1));
230         assertEquals("C", list.get(2));
231         assertEquals("D", list.get(3));
232         assertEquals("E", list.get(4));
233     }
234 
235     public void testBuild6()
236     {
237         List<String> list = EasyList.build("A", "B", "C", "D", "E", "F");
238         assertEquals(6, list.size());
239         assertEquals("A", list.get(0));
240         assertEquals("B", list.get(1));
241         assertEquals("C", list.get(2));
242         assertEquals("D", list.get(3));
243         assertEquals("E", list.get(4));
244         assertEquals("F", list.get(5));
245     }
246 
247     public void testBuild7()
248     {
249         List<String> list = EasyList.build("A", "B", "C", "D", "E", "F", "G");
250         assertEquals(7, list.size());
251         assertEquals("A", list.get(0));
252         assertEquals("B", list.get(1));
253         assertEquals("C", list.get(2));
254         assertEquals("D", list.get(3));
255         assertEquals("E", list.get(4));
256         assertEquals("F", list.get(5));
257         assertEquals("G", list.get(6));
258     }
259 
260     public void testBuild8()
261     {
262         List<String> list = EasyList.build("A", "B", "C", "D", "E", "F", "G", "H");
263         assertEquals(8, list.size());
264         assertEquals("A", list.get(0));
265         assertEquals("B", list.get(1));
266         assertEquals("C", list.get(2));
267         assertEquals("D", list.get(3));
268         assertEquals("E", list.get(4));
269         assertEquals("F", list.get(5));
270         assertEquals("G", list.get(6));
271         assertEquals("H", list.get(7));
272     }
273 }