// Copyright (c) 2005 Dustin Sallings <dustin@spy.net> package net.spy.util; import junit.framework.TestCase; /** * Test the timestamped hash. */ public class TimeStampedHashTest extends TestCase { /** * Get an instance of TimeStampedHashTest. */ public TimeStampedHashTest(String name) { super(name); } /** * Test the basic hashtable operations. */ public void testOperations() throws Exception { TimeStampedHashMap<String, String> m =new TimeStampedHashMap<String, String>(); long originalTimestamp=m.getTimestamp(); assertEquals(originalTimestamp, m.getLastGet()); assertEquals(originalTimestamp, m.getLastPut()); assertEquals(0, m.getHits()); assertEquals(0, m.getMisses()); assertEquals(0, m.getWatermark()); assertEquals(0, m.getNumPuts()); Thread.sleep(50); m.put("test", "blah"); assertEquals(m.getTimestamp(), m.getLastPut()); assertFalse(originalTimestamp == m.getTimestamp()); assertEquals(originalTimestamp, m.getLastGet()); assertEquals(1, m.getNumPuts()); Thread.sleep(50); assertEquals("blah", m.get("test")); assertEquals(m.getTimestamp(), m.getLastGet()); assertFalse(m.getTimestamp() == m.getLastPut()); assertEquals(1, m.getHits()); assertEquals(0, m.getMisses()); Thread.sleep(50); long ts=m.getTimestamp(); assertNull(m.get("missing")); assertEquals(m.getTimestamp(), m.getLastGet()); assertFalse(m.getTimestamp() == ts); assertEquals(1, m.getHits()); assertEquals(1, m.getMisses()); ts=m.getTimestamp(); long putAge=m.getPutAge(); long getAge=m.getGetAge(); long useAge=m.getUseAge(); Thread.sleep(50); assertTrue(m.getPutAge() - putAge >= 50); assertTrue(m.getGetAge() - getAge >= 50); assertTrue(m.getUseAge() - useAge >= 50); } }