1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package net.sf.ehcache.store;
18
19 import net.sf.ehcache.AbstractCacheTest;
20 import net.sf.ehcache.Element;
21 import net.sf.ehcache.MemoryStoreTester;
22
23 import java.io.IOException;
24
25
26
27
28
29
30
31
32
33
34 public class FifoMemoryStoreTest extends MemoryStoreTester {
35
36
37
38
39 protected void setUp() throws Exception {
40 super.setUp();
41 createMemoryStore(MemoryStoreEvictionPolicy.FIFO);
42 }
43
44
45
46
47 public void testPut() throws Exception {
48 putTest();
49 }
50
51
52
53
54 public void testPutFromConfig() throws Exception {
55 createMemoryStore(AbstractCacheTest.TEST_CONFIG_DIR + "ehcache-policy-test.xml", "sampleFIFOCache2");
56 putTest();
57 }
58
59
60
61
62
63 protected void putTest() throws IOException {
64 Element element;
65
66
67 assertEquals(0, store.getSize());
68
69
70 element = new Element("key1", "value1");
71 store.put(element);
72
73
74 store.put(new Element("key2", "value2"));
75 assertEquals(2, store.getSize());
76
77
78 element = store.get("key1");
79 assertNotNull(element);
80
81 assertEquals("value1", element.getObjectValue());
82 assertEquals(2, store.getSize());
83 }
84
85
86
87
88 public void testRemove() throws Exception {
89 removeTest();
90 }
91
92
93
94
95 public void testRemoveFromConfig() throws Exception {
96 createMemoryStore(AbstractCacheTest.TEST_CONFIG_DIR + "ehcache-policy-test.xml", "sampleFIFOCache2");
97 removeTest();
98 }
99
100
101
102
103
104
105
106 public void testBenchmarkPutGetSurya() throws Exception {
107 benchmarkPutGetSuryaTest(3000);
108 }
109
110
111
112
113
114
115 protected void removeTest() throws IOException {
116 Element element;
117
118
119 assertEquals(0, store.getSize());
120
121
122 element = new Element("key1", "value1");
123 store.put(element);
124
125 element = new Element("key2", "value2");
126 store.put(element);
127
128 element = new Element("key3", "value3");
129 store.put(element);
130
131
132 assertEquals(3, store.getSize());
133
134
135 store.remove("key1");
136 element = ((FifoMemoryStore)store).getFirstElement();
137 assertEquals("value2", element.getObjectValue());
138 assertEquals(2, store.getSize());
139
140 store.remove("key2");
141 element = ((FifoMemoryStore)store).getFirstElement();
142 assertEquals("value3", element.getObjectValue());
143 assertEquals(1, store.getSize());
144
145 store.remove("key3");
146 element = ((FifoMemoryStore)store).getFirstElement();
147 assertNull(element);
148 assertEquals(0, store.getSize());
149 }
150
151
152
153
154 public void testFifoPolicy() throws Exception {
155 createMemoryStore(MemoryStoreEvictionPolicy.FIFO, 5);
156 fifoPolicyTest();
157 }
158
159
160
161
162 public void testFifoPolicyFromConfig() throws Exception {
163 createMemoryStore(AbstractCacheTest.TEST_CONFIG_DIR + "ehcache-policy-test.xml", "sampleFIFOCache2");
164 fifoPolicyTest();
165 }
166
167 private void fifoPolicyTest() throws IOException {
168
169 assertEquals(0, store.getSize());
170
171
172 Element element = new Element("key1", "value1");
173 store.put(element);
174 assertEquals(1, store.getSize());
175
176 element = new Element("key2", "value2");
177 store.put(element);
178 assertEquals(2, store.getSize());
179
180 element = new Element("key3", "value3");
181 store.put(element);
182 assertEquals(3, store.getSize());
183
184 element = new Element("key4", "value4");
185 store.put(element);
186 assertEquals(4, store.getSize());
187
188 element = new Element("key5", "value5");
189 store.put(element);
190 assertEquals(5, store.getSize());
191
192
193
194 store.get("key1");
195 store.get("key1");
196 store.get("key3");
197 store.get("key3");
198 store.get("key3");
199 store.get("key4");
200
201
202 element = new Element("key6", "value6");
203 store.put(element);
204
205
206 assertEquals(5, store.getSize());
207
208
209 assertNull(store.get("key1"));
210
211
212 store.get("key5");
213 store.get("key5");
214
215
216 element = new Element("key7", "value7");
217 store.put(element);
218 assertEquals(5, store.getSize());
219 assertNull(store.get("key2"));
220 }
221 }