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 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,v 1.2 2006/06/15 16:27:17 ltorunski Exp $
17 * @version $Revision: 1.2 $
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 }