1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.apache.commons.cache;
17
18 import java.io.File;
19 import java.io.Serializable;
20
21 import junit.framework.Test;
22 import junit.framework.TestCase;
23 import junit.framework.TestSuite;
24
25 public class TestFileCache extends TestCase {
26 public TestFileCache(String testName) {
27 super(testName);
28 }
29
30 public static void main(String args[]) {
31 String[] testCaseName = { TestFileCache.class.getName() };
32 junit.textui.TestRunner.main(testCaseName);
33 }
34
35 public static Test suite() {
36 return new TestSuite(TestFileCache.class);
37 }
38
39 private Cache cache = null;
40 private File basedir = new File("cachetest");
41
42 public void setUp() {
43 basedir.mkdir();
44 cache = new SimpleCache(
45 new FileStash(-1,10000,basedir.getAbsolutePath() + "/cachedir",10,false),
46 new LRUEvictionPolicy(100,300000),
47 null,
48 new GroupMapImpl(),
49 new File(basedir,"cache.ser")
50 );
51 }
52
53 public void tearDown() {
54
55 }
56
57 public void testLong() {
58
59 System.out.println("NUM_RETRIEVE_FOUND: " + cache.getStat(CacheStat.NUM_RETRIEVE_FOUND));
60 System.out.println("NUM_RETRIEVE_NOT_FOUND: " + cache.getStat(CacheStat.NUM_RETRIEVE_NOT_FOUND));
61 System.out.println("NUM_RETRIEVE_REQUESTED: " + cache.getStat(CacheStat.NUM_RETRIEVE_REQUESTED));
62 System.out.println("NUM_STORE_NOT_STORED: " + cache.getStat(CacheStat.NUM_STORE_NOT_STORED));
63 System.out.println("NUM_STORE_REQUESTED: " + cache.getStat(CacheStat.NUM_STORE_REQUESTED));
64 System.out.println("NUM_STORE_STORED: " + cache.getStat(CacheStat.NUM_STORE_STORED));
65 System.out.println("CUR_CAPACITY: " + cache.getStat(CacheStat.CUR_CAPACITY));
66
67 StringBuffer buf = new StringBuffer();
68
69 for(int i=0;i<3;i++) {
70 buf.append("All your base are now belong to us. ");
71 }
72 for(int i=0;i<1500;i++) {
73 String key = "this is the key " + i;
74 assertTrue("object " + i + " should be storeable",cache.store(key,buf,new Long(System.currentTimeMillis()+600000L),null));
75 assertTrue("object " + i + " should be in the cache",cache.contains(key));
76 }
77 System.out.println("NUM_RETRIEVE_FOUND: " + cache.getStat(CacheStat.NUM_RETRIEVE_FOUND));
78 System.out.println("NUM_RETRIEVE_NOT_FOUND: " + cache.getStat(CacheStat.NUM_RETRIEVE_NOT_FOUND));
79 System.out.println("NUM_RETRIEVE_REQUESTED: " + cache.getStat(CacheStat.NUM_RETRIEVE_REQUESTED));
80 System.out.println("NUM_STORE_NOT_STORED: " + cache.getStat(CacheStat.NUM_STORE_NOT_STORED));
81 System.out.println("NUM_STORE_REQUESTED: " + cache.getStat(CacheStat.NUM_STORE_REQUESTED));
82 System.out.println("NUM_STORE_STORED: " + cache.getStat(CacheStat.NUM_STORE_STORED));
83 System.out.println("CUR_CAPACITY: " + cache.getStat(CacheStat.CUR_CAPACITY));
84
85 int found = 0;
86 for(int i=0;i<1500;i++) {
87 String key = "this is the key " + i;
88 if(null != cache.retrieve(key)) {
89 found++;
90 }
91 }
92 System.out.println("found: " + found);
93
94 System.out.println("NUM_RETRIEVE_FOUND: " + cache.getStat(CacheStat.NUM_RETRIEVE_FOUND));
95 System.out.println("NUM_RETRIEVE_NOT_FOUND: " + cache.getStat(CacheStat.NUM_RETRIEVE_NOT_FOUND));
96 System.out.println("NUM_RETRIEVE_REQUESTED: " + cache.getStat(CacheStat.NUM_RETRIEVE_REQUESTED));
97 System.out.println("NUM_STORE_NOT_STORED: " + cache.getStat(CacheStat.NUM_STORE_NOT_STORED));
98 System.out.println("NUM_STORE_REQUESTED: " + cache.getStat(CacheStat.NUM_STORE_REQUESTED));
99 System.out.println("NUM_STORE_STORED: " + cache.getStat(CacheStat.NUM_STORE_STORED));
100 System.out.println("CUR_CAPACITY: " + cache.getStat(CacheStat.CUR_CAPACITY));
101 }
102
103 public void testStoreRetrieve() {
104 Serializable key1 = "key 1";
105 Serializable value1 = "value 1";
106 Serializable key2 = "key 2";
107 Serializable value2 = "value 2";
108 Serializable key3 = "key 3";
109 Serializable value3 = "value 3";
110
111 assertTrue(!cache.contains(key1));
112 assertTrue(cache.store(key1,value1,null,null));
113 assertTrue(cache.contains(key1));
114 assertEquals(value1,cache.retrieve(key1));
115
116 assertTrue(!cache.contains(key2));
117 assertTrue(cache.store(key2,value2,null,null));
118 assertTrue(cache.contains(key2));
119 assertEquals(value2,cache.retrieve(key2));
120
121 assertTrue(!cache.contains(key3));
122 assertTrue(cache.store(key3,value3,null,null));
123 assertTrue(cache.contains(key3));
124 assertEquals(value3,cache.retrieve(key3));
125
126 assertTrue(cache.contains(key1));
127 assertEquals(value1,cache.retrieve(key1));
128 }
129
130 public void testStoreRetrieveClear() {
131 Serializable key1 = "key 1";
132 Serializable value1 = "value 1";
133 Serializable key2 = "key 2";
134 Serializable value2 = "value 2";
135 Serializable key3 = "key 3";
136 Serializable value3 = "value 3";
137
138 assertTrue(!cache.contains(key1));
139 assertTrue(cache.store(key1,value1,null,null));
140 assertTrue(cache.contains(key1));
141 assertEquals(value1,cache.retrieve(key1));
142
143 assertTrue(!cache.contains(key2));
144 assertTrue(cache.store(key2,value2,null,null));
145 assertTrue(cache.contains(key2));
146 assertEquals(value2,cache.retrieve(key2));
147
148 assertTrue(!cache.contains(key3));
149 assertTrue(cache.store(key3,value3,null,null));
150 assertTrue(cache.contains(key3));
151 assertEquals(value3,cache.retrieve(key3));
152
153 cache.clear(key1);
154 assertTrue(!cache.contains(key1));
155 assertTrue(cache.contains(key2));
156 assertTrue(cache.contains(key3));
157
158 cache.clear(key2);
159 assertTrue(!cache.contains(key1));
160 assertTrue(!cache.contains(key2));
161 assertTrue(cache.contains(key3));
162
163 cache.clear(key3);
164 assertTrue(!cache.contains(key1));
165 assertTrue(!cache.contains(key2));
166 assertTrue(!cache.contains(key3));
167 }
168 }