01: /*
02: * Copyright (c) 2002-2003 by OpenSymphony
03: * All rights reserved.
04: */
05: package com.opensymphony.oscache.base.algorithm;
06:
07: import junit.framework.Test;
08: import junit.framework.TestSuite;
09:
10: /**
11: * Test class for the Unlimited cache algorithm. Most of the tests are done
12: * in the TestNonQueueCache class, so only algorithm specific tests are done
13: * here. Since this is an unlimited cache, there's not much to test about
14: * the algorithm.
15: *
16: * $Id: TestUnlimitedCache.java 365 2006-06-15 16:27:17Z ltorunski $
17: * @version $Revision: 365 $
18: * @author <a href="mailto:abergevin@pyxis-tech.com">Alain Bergevin</a>
19: */
20: public final class TestUnlimitedCache extends TestQueueCache {
21: /**
22: * Unlimited Cache object
23: */
24: private static UnlimitedCache cache = null;
25:
26: /**
27: * Constructor
28: * <p>
29: * @param str The test name (required by JUnit)
30: */
31: public TestUnlimitedCache(String 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(TestUnlimitedCache.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 UnlimitedCache();
61: assertNotNull(cache);
62: }
63: }
64:
65: /**
66: * Test the getter and setter for the max entries. It overrides the TestQueueCache
67: * one since it shouldn't have any effect in unlimited cache
68: */
69: public void testGetSetMaxEntries() {
70: // Check that the max entries cannot be changed
71: int entryCount = getCache().getMaxEntries();
72: getCache().setMaxEntries(entryCount - 1);
73: assertEquals(entryCount, getCache().getMaxEntries());
74: }
75:
76: /**
77: * Test the cache algorithm
78: */
79: public void testRemoveItem() {
80: // Add an item, and ensure that it is not removable
81: cache.itemPut(KEY);
82: assertNull(cache.removeItem());
83: }
84:
85: /**
86: * Test that groups are correctly updated on puts and removes
87: */
88: public void testGroups() {
89: // test not possible, because can't reduce cache max entries for this test
90: }
91:
92: }
|