1 |
| |
2 |
| |
3 |
| |
4 |
| |
5 |
| |
6 |
| |
7 |
| package org.jboss.cache.eviction; |
8 |
| |
9 |
| import junit.framework.TestCase; |
10 |
| import org.jboss.cache.Fqn; |
11 |
| |
12 |
| |
13 |
| |
14 |
| |
15 |
| |
16 |
| |
17 |
| |
18 |
| public class MRUQueueTest extends TestCase |
19 |
| { |
20 |
| private MRUQueue queue; |
21 |
| |
22 |
2
| public void setUp() throws Exception
|
23 |
| { |
24 |
2
| super.setUp();
|
25 |
2
| queue = new MRUQueue();
|
26 |
| } |
27 |
| |
28 |
2
| public void tearDown() throws Exception
|
29 |
| { |
30 |
2
| super.tearDown();
|
31 |
2
| queue.clear();
|
32 |
| } |
33 |
| |
34 |
1
| public void testQueue() throws Exception
|
35 |
| { |
36 |
1
| for (int i = 0; i < 100; i++)
|
37 |
| { |
38 |
100
| NodeEntry ne = new NodeEntry("/a/b/c/" + Integer.toString(i));
|
39 |
100
| ne.setModifiedTimeStamp(0);
|
40 |
100
| queue.addNodeEntry(ne);
|
41 |
| } |
42 |
| |
43 |
1
| assertEquals(queue.nodeMap.size(), queue.list.size());
|
44 |
| |
45 |
1
| for (int i = 0; i < 100; i++)
|
46 |
| { |
47 |
100
| if (i % 2 == 0)
|
48 |
| { |
49 |
50
| Fqn fqn = Fqn.fromString("/a/b/c/" + Integer.toString(i));
|
50 |
50
| NodeEntry ne = queue.getNodeEntry(fqn);
|
51 |
50
| ne.setModifiedTimeStamp(System.currentTimeMillis());
|
52 |
50
| queue.moveToTopOfStack(fqn);
|
53 |
| } |
54 |
| } |
55 |
| |
56 |
1
| assertEquals(queue.nodeMap.size(), queue.list.size());
|
57 |
| |
58 |
1
| NodeEntry ne;
|
59 |
1
| int count = 0;
|
60 |
?
| while ((ne = queue.getFirstNodeEntry()) != null)
|
61 |
| { |
62 |
100
| if (count < 50)
|
63 |
| { |
64 |
50
| assertTrue(ne.getModifiedTimeStamp() > 0);
|
65 |
50
| assertEquals(100 - count, queue.getNumberOfNodes());
|
66 |
| } |
67 |
| else |
68 |
| { |
69 |
50
| assertEquals(0, ne.getModifiedTimeStamp());
|
70 |
| } |
71 |
100
| queue.removeNodeEntry(ne);
|
72 |
100
| count++;
|
73 |
| } |
74 |
1
| assertEquals(queue.nodeMap.size(), queue.list.size());
|
75 |
| |
76 |
| } |
77 |
| |
78 |
1
| public void testNumElements() throws Exception
|
79 |
| { |
80 |
1
| MRUQueue queue = new MRUQueue();
|
81 |
| |
82 |
1
| NodeEntry ne = new NodeEntry("/a/b/c");
|
83 |
1
| ne.setNumberOfElements(50);
|
84 |
1
| queue.addNodeEntry(ne);
|
85 |
| |
86 |
1
| assertEquals(50, queue.getNumberOfElements());
|
87 |
1
| assertEquals(1, queue.getNumberOfNodes());
|
88 |
| |
89 |
1
| queue.removeNodeEntry(ne);
|
90 |
1
| assertEquals(0, queue.getNumberOfElements());
|
91 |
| |
92 |
1
| for(int i = 0; i < 10; i++)
|
93 |
| { |
94 |
10
| ne = new NodeEntry("/a/b/c/" + Integer.toString(i));
|
95 |
10
| ne.setNumberOfElements(i);
|
96 |
10
| queue.addNodeEntry(ne);
|
97 |
| } |
98 |
| |
99 |
1
| assertEquals(45, queue.getNumberOfElements());
|
100 |
1
| assertEquals(10, queue.getNumberOfNodes());
|
101 |
| |
102 |
1
| ne = queue.getNodeEntry("/a/b/c/0");
|
103 |
1
| assertNotNull(ne);
|
104 |
1
| assertEquals(0, ne.getNumberOfElements());
|
105 |
1
| ne.setNumberOfElements(500);
|
106 |
| |
107 |
1
| assertEquals(545, queue.getNumberOfElements());
|
108 |
1
| ne = queue.getNodeEntry("/a/b/c/0");
|
109 |
1
| assertEquals(500, ne.getNumberOfElements());
|
110 |
| |
111 |
1
| queue.removeNodeEntry(ne);
|
112 |
| |
113 |
1
| assertEquals(45, queue.getNumberOfElements());
|
114 |
1
| assertEquals(9, queue.getNumberOfNodes());
|
115 |
1
| for(int i = 1; i < 10; i++)
|
116 |
| { |
117 |
9
| ne = queue.getNodeEntry("/a/b/c/" + Integer.toString(i));
|
118 |
9
| assertEquals(i, ne.getNumberOfElements());
|
119 |
9
| queue.removeNodeEntry(ne);
|
120 |
| } |
121 |
| |
122 |
1
| assertEquals(0, queue.getNumberOfNodes());
|
123 |
1
| assertEquals(0, queue.getNumberOfElements());
|
124 |
| |
125 |
1
| assertNull(queue.getNodeEntry("/a/b/c/0"));
|
126 |
1
| assertNull(queue.getFirstNodeEntry());
|
127 |
| } |
128 |
| |
129 |
| } |