1 /**
2 * Logback: the reliable, generic, fast and flexible logging framework.
3 * Copyright (C) 1999-2015, QOS.ch. All rights reserved.
4 *
5 * This program and the accompanying materials are dual-licensed under
6 * either the terms of the Eclipse Public License v1.0 as published by
7 * the Eclipse Foundation
8 *
9 * or (per the licensee's choosing)
10 *
11 * under the terms of the GNU Lesser General Public License version 2.1
12 * as published by the Free Software Foundation.
13 */
14 package ch.qos.logback.classic.turbo;
15
16 import static org.junit.jupiter.api.Assertions.*;
17 import org.junit.jupiter.api.Test;
18
19 public class LRUMessageCacheTest {
20
21 @Test
22 public void testEldestEntriesRemoval() {
23 final LRUMessageCache cache = new LRUMessageCache(2);
24 assertEquals(0, cache.getMessageCountAndThenIncrement("0"));
25 assertEquals(1, cache.getMessageCountAndThenIncrement("0"));
26 assertEquals(0, cache.getMessageCountAndThenIncrement("1"));
27 assertEquals(1, cache.getMessageCountAndThenIncrement("1"));
28 // 0 entry should have been removed.
29 assertEquals(0, cache.getMessageCountAndThenIncrement("2"));
30 // So it is expected a returned value of 0 instead of 2.
31 // 1 entry should have been removed.
32 assertEquals(0, cache.getMessageCountAndThenIncrement("0"));
33 // So it is expected a returned value of 0 instead of 2.
34 // 2 entry should have been removed.
35 assertEquals(0, cache.getMessageCountAndThenIncrement("1"));
36 // So it is expected a returned value of 0 instead of 2.
37 assertEquals(0, cache.getMessageCountAndThenIncrement("2"));
38 }
39
40 }