1   /*
2    * Copyright (C) 2004 TiongHiang Lee
3    *
4    * This library is free software; you can redistribute it and/or
5    * modify it under the terms of the GNU Lesser General Public
6    * License as published by the Free Software Foundation; either
7    * version 2.1 of the License, or (at your option) any later version.
8    *
9    * This library is distributed in the hope that it will be useful,
10   * but WITHOUT ANY WARRANTY; without even the implied warranty of
11   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12   * Lesser General Public License for more details.
13   *
14   * You should have received a copy of the GNU Lesser General Public
15   * License along with this library; if not,  write to the Free Software
16   * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17   *
18   * Email: thlee@onemindsoft.org
19   */
20  
21  package org.onemind.commons.java.datastructure;
22  
23  import org.onemind.commons.java.datastructure.LookupCache;
24  import junit.framework.TestCase;
25  /***
26   * Test for lookup cache
27   * @author TiongHiang Lee (thlee@onemindsoft.org)
28   * @version $Id: LookupCacheTest.java,v 1.2 2004/08/26 12:33:09 thlee Exp $ $Name:  $
29   */
30  public class LookupCacheTest extends TestCase
31  {
32  
33      /***
34       * A test implemement for the lookup cache
35       * @author TiongHiang Lee (thlee@onemindsoft.org)
36       * @version $Id: LookupCacheTest.java,v 1.2 2004/08/26 12:33:09 thlee Exp $ $Name:  $
37       */
38      private class TestCacheImpl extends LookupCache
39      {
40  
41          /***
42           * Only produce value if key is "One" {@inheritDoc}
43           */
44          protected Object produce(Object key)
45          {
46              if (key.equals("One"))
47              {
48                  return new Integer("1");
49              } else
50              {
51                  return null;
52              }
53          }
54      }
55  
56      public void testLookupCache()
57      {
58          TestCacheImpl cache = new TestCacheImpl();
59          String one = "One";
60          String two = "Two";
61          assertFalse(cache.isInCache(one));
62          assertFalse(cache.isInCache(two));
63          assertFalse(cache.isInNegCache(one));
64          assertFalse(cache.isInNegCache(two));
65          cache.lookup("One");
66          cache.lookup("Two");
67          assertTrue(cache.isInCache(one));
68          assertTrue(cache.isInNegCache(two));
69      }
70  }