ttnhabbridge/ttnhabbridge/src/test/java/nl/sikken/bertrik/hab/ExpiringCacheTest.java

42 wiersze
1.2 KiB
Java

package nl.sikken.bertrik.hab;
import java.time.Instant;
import org.junit.Assert;
import org.junit.Test;
/**
* Unit test for expiring cache.
*/
public final class ExpiringCacheTest {
/**
* Verifies expiration behaviour.
*/
@Test
public void testExpiry() {
final ExpiringCache cache = new ExpiringCache(1);
// add two items
final Instant date1 = Instant.now();
final Instant date2 = date1.plusMillis(500);
Assert.assertTrue(cache.add("1", date1));
Assert.assertTrue(cache.add("2", date2));
// verify they are cached
final Instant date = date1.plusMillis(750);
Assert.assertFalse(cache.add("1", date));
Assert.assertFalse(cache.add("2", date));
// add another item, causing item 1 to expire, but not yet item 2
final Instant date3 = date1.plusMillis(1250);
Assert.assertTrue(cache.add("3", date3));
Assert.assertTrue(cache.add("1", date3));
Assert.assertFalse(cache.add("1", date3));
Assert.assertFalse(cache.add("2", date3));
Assert.assertFalse(cache.add("3", date3));
}
}