View Javadoc

1   package net.sf.ehcache.util;
2   
3   import java.io.IOException;
4   import java.util.ArrayList;
5   import java.util.HashSet;
6   import java.util.Iterator;
7   import java.util.List;
8   
9   import junit.framework.Assert;
10  
11  import org.junit.Test;
12  
13  public class LargeCollectionTest {
14  
15      @Test
16      public void testIteration() throws IOException {
17  
18          AggregateIterator<String> iterator = newIterator();
19          int i = 0;
20          while (iterator.hasNext()) {
21              String s = iterator.next();
22              Assert.assertNotSame("key1", s);
23              Assert.assertNotSame("key2", s);
24              i++;
25          }
26          Assert.assertEquals(198, i);
27  
28          LargeSet set = new LargeSet() {
29  
30              @Override
31              public Iterator sourceIterator() {
32                  return newIterator();
33              }
34  
35              @Override
36              public int sourceSize() {
37                  return 198;
38              }
39  
40          };
41  
42          Assert.assertEquals(198, set.size());
43  
44          HashSet additionalSet = new HashSet();
45  
46          for (int j = 0; j < 100; j++) {
47              additionalSet.add("keyb" + j);
48          }
49  
50          HashSet removeSet = new HashSet();
51  
52          for (int j = 0; j < 50; j++) {
53              removeSet.add("keyb" + j);
54          }
55  
56          int beforeSize = set.size();
57          set.addAll(additionalSet);
58          set.removeAll(removeSet);
59  
60          Assert.assertEquals(beforeSize + 50, set.size());
61  //        iterator = newIterator();
62  //        while(iterator.hasNext()) {
63  //            iterator.next();
64  //            iterator.remove();
65  //        }
66  
67  
68      }
69  
70      private AggregateIterator<String> newIterator() {
71          HashSet removeSet = new HashSet();
72          removeSet.add("key1");
73          removeSet.add("key2");
74  
75          HashSet sourceSet1 = new HashSet();
76          for (int i = 0; i < 100; i++) {
77              sourceSet1.add("key" + i);
78          }
79  
80          HashSet sourceSet2 = new HashSet();
81          for (int i = 0; i < 100; i++) {
82              sourceSet1.add("keya" + i);
83          }
84          List sources = new ArrayList(4);
85          sources.add(sourceSet1.iterator());
86          sources.add(sourceSet2.iterator());
87  
88          AggregateIterator<String> iterator = new AggregateIterator<String>(removeSet, sources);
89          return iterator;
90      }
91  }