Skip to content

Commit 79a5dbf

Browse files
committed
Add LRUMapExamples
1 parent 19d4dc4 commit 79a5dbf

File tree

1 file changed

+93
-0
lines changed

1 file changed

+93
-0
lines changed
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
package com.robertsmieja.example.apache.commons.collections4;
2+
3+
import org.apache.commons.collections4.map.LRUMap;
4+
import org.junit.Before;
5+
import org.junit.Test;
6+
7+
import static org.junit.Assert.assertEquals;
8+
import static org.junit.Assert.assertFalse;
9+
import static org.junit.Assert.assertNull;
10+
11+
/**
12+
* Examples demonstrating the LRUMap
13+
*/
14+
public class LRUMapExamples {
15+
LRUMap<Integer, String> lruMap;
16+
17+
@Before
18+
public void setup(){
19+
lruMap = new LRUMap<>(2);
20+
}
21+
22+
@Test
23+
public void maxSize(){
24+
assertEquals(lruMap.size(), 0);
25+
assertEquals(lruMap.maxSize(), 2);
26+
}
27+
28+
@Test
29+
public void anythingUnderTheMaxSizeStaysInTheMap(){
30+
lruMap.put(1, "foo");
31+
lruMap.put(2, "bar");
32+
33+
assertEquals(lruMap.get(1), "foo");
34+
assertEquals(lruMap.get(2), "bar");
35+
}
36+
37+
@Test
38+
public void goingOverTheMaxKicksOutTheOldestEntry(){
39+
lruMap.put(1, "foo");
40+
lruMap.put(2, "bar");
41+
42+
assertEquals(lruMap.get(1), "foo");
43+
assertEquals(lruMap.get(2), "bar");
44+
45+
//A put now show remove the entry (1, "foo")
46+
lruMap.put(3, "is it gone?");
47+
48+
assertFalse(lruMap.containsKey(1));
49+
assertNull(lruMap.get(1));
50+
assertEquals(lruMap.size(), 2);
51+
52+
assertEquals(lruMap.get(2), "bar");
53+
assertEquals(lruMap.get(3), "is it gone?");
54+
}
55+
56+
@Test
57+
public void goingOverTheMaxKicksOutTheOldestEntry_exceptThisTimeWithTheSecondEntry(){
58+
lruMap.put(1, "foo");
59+
lruMap.put(2, "bar");
60+
61+
assertEquals(lruMap.get(2), "bar");
62+
assertEquals(lruMap.get(1), "foo");
63+
64+
//A put now show remove the entry (1, "foo")
65+
lruMap.put(3, "is it gone?");
66+
67+
assertFalse(lruMap.containsKey(2));
68+
assertNull(lruMap.get(2));
69+
assertEquals(lruMap.size(), 2);
70+
71+
assertEquals(lruMap.get(1), "foo");
72+
assertEquals(lruMap.get(3), "is it gone?");
73+
}
74+
75+
@Test
76+
public void passingInFalseDoesntUpdateTheInternalMru(){
77+
lruMap.put(1, "foo");
78+
lruMap.put(2, "bar");
79+
80+
assertEquals(lruMap.get(2), "bar");
81+
assertEquals(lruMap.get(1, false), "foo");
82+
83+
//A put now show remove the entry (1, "foo")
84+
lruMap.put(3, "is it gone?");
85+
86+
assertFalse(lruMap.containsKey(1));
87+
assertNull(lruMap.get(1));
88+
assertEquals(lruMap.size(), 2);
89+
90+
assertEquals(lruMap.get(2), "bar");
91+
assertEquals(lruMap.get(3), "is it gone?");
92+
}
93+
}

0 commit comments

Comments
 (0)