/* * Copyright 2010-2017 Amazon.com, Inc. or its affiliates. All Rights * Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is * distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either * express or implied. See the License for the specific language * governing * permissions and limitations under the License. */ package com.amazonaws.internal; import static org.junit.Assert.*; import org.junit.Test; public class FIFOCacheTest { @Test public void test() { FIFOCache<String> cache = new FIFOCache<String>(3); assertTrue(cache.size() == 0); cache.add("k1", "v1"); assertTrue(cache.size() == 1); cache.add("k1", "v11"); assertTrue(cache.size() == 1); cache.add("k2", "v2"); assertTrue(cache.size() == 2); cache.add("k3", "v3"); assertTrue(cache.size() == 3); assertEquals("v11", cache.get("k1")); assertEquals("v2", cache.get("k2")); assertEquals("v3", cache.get("k3")); cache.add("k4", "v4"); assertTrue(cache.size() == 3); assertNull(cache.get("k1")); } @Test(expected=IllegalArgumentException.class) public void testZeroSize() { new FIFOCache<Object>(0); } @Test(expected=IllegalArgumentException.class) public void testIllegalArgument() { new FIFOCache<Object>(-1); } @Test public void testSingleEntry() { FIFOCache<String> cache = new FIFOCache<String>(1); assertTrue(cache.size() == 0); cache.add("k1", "v1"); assertTrue(cache.size() == 1); cache.add("k1", "v11"); assertTrue(cache.size() == 1); assertEquals("v11", cache.get("k1")); cache.add("k2", "v2"); assertTrue(cache.size() == 1); assertEquals("v2", cache.get("k2")); assertNull(cache.get("k1")); cache.add("k3", "v3"); assertTrue(cache.size() == 1); assertEquals("v3", cache.get("k3")); assertNull(cache.get("k2")); } }