KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > shiftone > cache > test > SoftCacheTestCase


1 package org.shiftone.cache.test;
2
3
4
5 import junit.framework.TestCase;
6
7 import org.shiftone.cache.Cache;
8 import org.shiftone.cache.adaptor.MapCache;
9 import org.shiftone.cache.decorator.soft.SoftCache;
10
11 import java.lang.ref.Reference JavaDoc;
12
13 import java.util.ArrayList JavaDoc;
14 import java.util.Hashtable JavaDoc;
15 import java.util.List JavaDoc;
16
17
18 public class SoftCacheTestCase extends TestCase
19 {
20
21     public void testSimple() throws Exception JavaDoc
22     {
23
24         Cache cache1 = new MapCache(new Hashtable JavaDoc());
25         Cache cache2 = new SoftCache(cache1);
26
27         cache2.addObject("key", "value");
28         assertEquals("value", cache2.getObject("key"));
29     }
30
31
32     public void testReference() throws Exception JavaDoc
33     {
34
35         Object JavaDoc inObject = createBigObject();
36         Object JavaDoc outObject;
37         MapCache mapCache;
38         SoftCache softCache;
39
40         mapCache = new MapCache(new Hashtable JavaDoc());
41         softCache = new SoftCache(mapCache);
42
43         softCache.addObject("key", inObject);
44
45         outObject = mapCache.getObject("key");
46
47         assertTrue("outObject instanceof Reference", outObject instanceof Reference JavaDoc);
48         assertTrue("cache2.getObject('key') == inObject", softCache.getObject("key") == inObject);
49
50         outObject = null;
51         inObject = null;
52
53         for (int i = 0; i < 10; i++)
54         {
55             Runtime.getRuntime().gc();
56             Runtime.getRuntime().runFinalization();
57             Runtime.getRuntime().gc();
58             softCache.addObject(new Integer JavaDoc(i), createBigObject());
59
60             //softCache.removeExpiredElements();
61
Thread.sleep(500);
62         }
63     }
64
65
66     public Object JavaDoc createBigObject()
67     {
68
69         List JavaDoc list = new ArrayList JavaDoc();
70
71         for (int i = 0; i < 500000; i++)
72         {
73             list.add(Integer.toOctalString(i));
74         }
75
76         return list;
77     }
78 }
79
Popular Tags