/* *************************************************************************************** * Copyright (C) 2006 EsperTech, Inc. All rights reserved. * * http://www.espertech.com/esper * * http://www.espertech.com * * ---------------------------------------------------------------------------------- * * The software in this package is published under the terms of the GPL license * * a copy of which has been included with this distribution in the license.txt file. * *************************************************************************************** */ package com.espertech.esper.epl.db; import com.espertech.esper.epl.join.table.EventTable; import com.espertech.esper.epl.join.table.UnindexedEventTableImpl; import junit.framework.TestCase; public class TestDataCacheLRUImpl extends TestCase { private DataCacheLRUImpl cache; private EventTable[] lists = new EventTable[10]; public void setUp() { cache = new DataCacheLRUImpl(3); for (int i = 0; i < lists.length; i++) { lists[i] = new UnindexedEventTableImpl(0); } } public void testGet() { assertNull(cache.getCached(make("a"), 1)); assertTrue(cache.isActive()); cache.put(make("a"), 1, new EventTable[]{lists[0]}); // a assertSame(lists[0], cache.getCached(make("a"), 1)[0]); cache.put(make("b"), 1, new EventTable[]{lists[1]}); // b, a assertSame(lists[1], cache.getCached(make("b"), 1)[0]); // b, a assertSame(lists[0], cache.getCached(make("a"), 1)[0]); // a, b cache.put(make("c"), 1, new EventTable[]{lists[2]}); // c, a, b cache.put(make("d"), 1, new EventTable[]{lists[3]}); // d, c, a (b gone) assertNull(cache.getCached(make("b"), 1)); assertEquals(lists[2], cache.getCached(make("c"), 1)[0]); // c, d, a assertEquals(lists[0], cache.getCached(make("a"), 1)[0]); // a, c, d cache.put(make("e"), 1, new EventTable[]{lists[4]}); // e, a, c (d and b gone) assertNull(cache.getCached(make("d"), 1)); assertNull(cache.getCached(make("b"), 1)); } private Object[] make(String key) { return new Object[]{key}; } }