/** * Logback: the reliable, generic, fast and flexible logging framework. * Copyright (C) 1999-2015, QOS.ch. All rights reserved. * * This program and the accompanying materials are dual-licensed under * either the terms of the Eclipse Public License v1.0 as published by * the Eclipse Foundation * * or (per the licensee's choosing) * * under the terms of the GNU Lesser General Public License version 2.1 * as published by the Free Software Foundation. */ package ch.qos.logback.core.spi; import ch.qos.logback.core.helpers.CyclicBuffer; import org.junit.Test; import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertNotNull; /** * @author Ceki Gülcü */ public class CyclicBufferTrackerTest { CyclicBufferTracker<Object> tracker = new CyclicBufferTracker<Object>(); String key = "a"; @Test public void empty0() { long now = 3000; tracker.removeStaleComponents(now); assertEquals(0, tracker.liveKeysAsOrderedList().size()); assertEquals(0, tracker.getComponentCount()); } @Test public void empty1() { long now = 3000; assertNotNull(tracker.getOrCreate(key, now++)); now += ComponentTracker.DEFAULT_TIMEOUT + 1000; tracker.removeStaleComponents(now); assertEquals(0, tracker.liveKeysAsOrderedList().size()); assertEquals(0, tracker.getComponentCount()); assertNotNull(tracker.getOrCreate(key, now++)); } @Test public void smoke() { long now = 3000; CyclicBuffer<Object> cb = tracker.getOrCreate(key, now); assertEquals(cb, tracker.getOrCreate(key, now++)); now += CyclicBufferTracker.DEFAULT_TIMEOUT + 1000; tracker.removeStaleComponents(now); assertEquals(0, tracker.liveKeysAsOrderedList().size()); assertEquals(0, tracker.getComponentCount()); } @Test public void destroy() { long now = 3000; CyclicBuffer<Object> cb = tracker.getOrCreate(key, now); cb.add(new Object()); assertEquals(1, cb.length()); tracker.endOfLife(key); now += CyclicBufferTracker.LINGERING_TIMEOUT + 10; tracker.removeStaleComponents(now); assertEquals(0, tracker.liveKeysAsOrderedList().size()); assertEquals(0, tracker.getComponentCount()); assertEquals(0, cb.length()); } }