KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > opensymphony > oscache > base > algorithm > TestLRUCache


1 /*
2  * Copyright (c) 2002-2003 by OpenSymphony
3  * All rights reserved.
4  */

5 package com.opensymphony.oscache.base.algorithm;
6
7 import junit.framework.Test;
8 import junit.framework.TestSuite;
9
10 /**
11  * Test class for the LRUCache class. It only tests that the algorithm reacts as
12  * expected when entries are removed. All the other tests related to the LRU
13  * algorithm are in the TestNonQueueCache class, since those tests are shared
14  * with the TestUnlimitedCache class.
15  *
16  * $Id: TestLRUCache.java,v 1.1 2005/06/17 05:07:08 dres Exp $
17  * @version $Revision: 1.1 $
18  * @author <a HREF="mailto:abergevin@pyxis-tech.com">Alain Bergevin</a>
19  */

20 public final class TestLRUCache extends TestQueueCache {
21     /**
22      * LRU Cache object
23      */

24     private static LRUCache cache = null;
25
26     /**
27      * Constructor
28      * <p>
29      * @param str The test name (required by JUnit)
30      */

31     public TestLRUCache(String JavaDoc str) {
32         super(str);
33     }
34
35     /**
36      * This methods returns the name of this test class to JUnit
37      * <p>
38      * @return The test for this class
39      */

40     public static Test suite() {
41         return new TestSuite(TestLRUCache.class);
42     }
43
44     /**
45      * Abstract method used by the TestAbstractCache class
46      * <p>
47      * @return A cache instance
48      */

49     public AbstractConcurrentReadCache getCache() {
50         return cache;
51     }
52
53     /**
54      * This method is invoked before each testXXXX methods of the
55      * class. It set ups the variables required for each tests.
56      */

57     public void setUp() {
58         // Create a cache instance on first invocation
59
if (cache == null) {
60             cache = new LRUCache();
61             assertNotNull(cache);
62         }
63     }
64
65     /**
66      * Test the cache algorithm
67      */

68     public void testRemoveItem() {
69         // Add 3 elements
70
cache.itemPut(KEY);
71         cache.itemPut(KEY + 1);
72         cache.itemPut(KEY + 2);
73
74         // Get the last element
75
cache.itemRetrieved(KEY);
76
77         // The least recently used item is key + 1
78
assertTrue((KEY + 1).equals(cache.removeItem()));
79     }
80 }
81
Popular Tags