@Test(expectedExceptions = IllegalStateException.class) public void expireAfterAccess_twice() { Caffeine.newBuilder().expireAfterAccess(1, TimeUnit.MILLISECONDS) .expireAfterAccess(1, TimeUnit.MILLISECONDS); }
@Test(expectedExceptions = IllegalStateException.class) public void expireAfterAccess_duration_twice() { Caffeine.newBuilder().expireAfterAccess(Duration.ofMillis(1)) .expireAfterAccess(Duration.ofMillis(1)); }
public void testTimeToIdle_setTwice() { Caffeine<Object, Object> builder = Caffeine.newBuilder().expireAfterAccess(3600, SECONDS); try { // even to the same value is not allowed builder.expireAfterAccess(3600, SECONDS); fail(); } catch (IllegalStateException expected) {} }
/** Configures the access expiration and returns if set. */ private boolean configureExpireAfterAccess() { if (config.getExpireAfterAccess().isPresent()) { caffeine.expireAfterAccess(config.getExpireAfterAccess().getAsLong(), TimeUnit.NANOSECONDS); } return config.getExpireAfterAccess().isPresent(); }
@GwtIncompatible // java.time.Duration public void testTimeToIdle_setTwice_duration() { Caffeine<Object, Object> builder = Caffeine.newBuilder().expireAfterAccess(java.time.Duration.ofSeconds(3600)); try { // even to the same value is not allowed builder.expireAfterAccess(java.time.Duration.ofSeconds(3600)); fail(); } catch (IllegalStateException expected) { } }
@Test public void expireAfterAccess_duration_small() { Caffeine<?, ?> builder = Caffeine.newBuilder().expireAfterAccess(Duration.ofMillis(0)); assertThat(builder.expireAfterAccessNanos, is(0L)); Expiration<?, ?> expiration = builder.build().policy().expireAfterAccess().get(); assertThat(expiration.getExpiresAfter(TimeUnit.MILLISECONDS), is(0L)); }
@Test public void expireAfterAccess_small() { Caffeine<?, ?> builder = Caffeine.newBuilder().expireAfterAccess(0, TimeUnit.MILLISECONDS); assertThat(builder.expireAfterAccessNanos, is(0L)); Expiration<?, ?> expiration = builder.build().policy().expireAfterAccess().get(); assertThat(expiration.getExpiresAfter(TimeUnit.MILLISECONDS), is(0L)); }
@Test public void expireAfterAccess_large() { Caffeine<?, ?> builder = Caffeine.newBuilder() .expireAfterAccess(Integer.MAX_VALUE, TimeUnit.NANOSECONDS); assertThat(builder.expireAfterAccessNanos, is((long) Integer.MAX_VALUE)); Expiration<?, ?> expiration = builder.build().policy().expireAfterAccess().get(); assertThat(expiration.getExpiresAfter(TimeUnit.NANOSECONDS), is((long) Integer.MAX_VALUE)); }
@Test public void expireAfterAccess_duration_large() { Caffeine<?, ?> builder = Caffeine.newBuilder() .expireAfterAccess(Duration.ofNanos(Integer.MAX_VALUE)); assertThat(builder.expireAfterAccessNanos, is((long) Integer.MAX_VALUE)); Expiration<?, ?> expiration = builder.build().policy().expireAfterAccess().get(); assertThat(expiration.getExpiresAfter(TimeUnit.NANOSECONDS), is((long) Integer.MAX_VALUE)); }
@Override public void setUp() throws Exception { super.setUp(); this.cache = CaffeinatedGuava.build(Caffeine.newBuilder() .expireAfterAccess(500000, TimeUnit.MILLISECONDS) .executor(MoreExecutors.directExecutor()) .maximumSize(count)); }
public void testTimeToIdle_small() { CaffeinatedGuava.build(Caffeine.newBuilder() .expireAfterAccess(1, NANOSECONDS), identityLoader()); // well, it didn't blow up. }
public void testTimeToIdleAndToLive() { CaffeinatedGuava.build(Caffeine.newBuilder() .expireAfterWrite(1, NANOSECONDS) .expireAfterAccess(1, NANOSECONDS), identityLoader()); // well, it didn't blow up. }
public void testParse_accessExpirationSeconds() { CaffeineSpec spec = parse("expireAfterAccess=10s"); assertEquals(TimeUnit.SECONDS, spec.expireAfterAccessTimeUnit); assertEquals(10L, spec.expireAfterAccessDuration); assertCaffeineEquivalence( Caffeine.newBuilder().expireAfterAccess(10L, TimeUnit.SECONDS), Caffeine.from(spec)); }
public void testParse_accessExpirationMinutes() { CaffeineSpec spec = parse("expireAfterAccess=10m"); assertEquals(TimeUnit.MINUTES, spec.expireAfterAccessTimeUnit); assertEquals(10L, spec.expireAfterAccessDuration); assertCaffeineEquivalence( Caffeine.newBuilder().expireAfterAccess(10L, TimeUnit.MINUTES), Caffeine.from(spec)); }
public void testParse_accessExpirationHours() { CaffeineSpec spec = parse("expireAfterAccess=150h"); assertEquals(TimeUnit.HOURS, spec.expireAfterAccessTimeUnit); assertEquals(150L, spec.expireAfterAccessDuration); assertCaffeineEquivalence( Caffeine.newBuilder().expireAfterAccess(150L, TimeUnit.HOURS), Caffeine.from(spec)); }
public void testExpiringGet_expireAfterAccess() { FakeTicker ticker = new FakeTicker(); CountingRemovalListener<String, Integer> removalListener = countingRemovalListener(); WatchedCreatorLoader loader = new WatchedCreatorLoader(); LoadingCache<String, Integer> cache = CaffeinatedGuava.build(Caffeine.newBuilder() .expireAfterAccess(EXPIRING_TIME, MILLISECONDS) .executor(MoreExecutors.directExecutor()) .removalListener(removalListener) .ticker(ticker::read), loader); runExpirationTest(cache, loader, ticker, removalListener); }
public void testExpiration_expireAfterAccess() { FakeTicker ticker = new FakeTicker(); CountingRemovalListener<String, Integer> removalListener = countingRemovalListener(); WatchedCreatorLoader loader = new WatchedCreatorLoader(); LoadingCache<String, Integer> cache = CaffeinatedGuava.build(Caffeine.newBuilder() .expireAfterAccess(EXPIRING_TIME, MILLISECONDS) .executor(MoreExecutors.directExecutor()) .removalListener(removalListener) .ticker(ticker::read), loader); checkExpiration(cache, loader, ticker, removalListener); }
public void testRemovalScheduler_expireAfterAccess() { FakeTicker ticker = new FakeTicker(); CountingRemovalListener<String, Integer> removalListener = countingRemovalListener(); WatchedCreatorLoader loader = new WatchedCreatorLoader(); LoadingCache<String, Integer> cache = CaffeinatedGuava.build(Caffeine.newBuilder() .expireAfterAccess(EXPIRING_TIME, MILLISECONDS) .executor(MoreExecutors.directExecutor()) .removalListener(removalListener) .ticker(ticker::read), loader); runRemovalScheduler(cache, removalListener, loader, ticker, KEY_PREFIX, EXPIRING_TIME); }
public void testCaffeineFrom_string() { Caffeine<?, ?> fromString = Caffeine.from( "initialCapacity=10,maximumSize=20,weakKeys,weakValues,expireAfterAccess=10m"); Caffeine<?, ?> expected = Caffeine.newBuilder() .initialCapacity(10) .maximumSize(20) .weakKeys() .weakValues() .expireAfterAccess(10L, TimeUnit.MINUTES); assertCaffeineEquivalence(expected, fromString); }
public void testParse_accessExpirationAndWriteExpiration() { CaffeineSpec spec = parse("expireAfterAccess=10s,expireAfterWrite=9m"); assertEquals(TimeUnit.MINUTES, spec.expireAfterWriteTimeUnit); assertEquals(9L, spec.expireAfterWriteDuration); assertEquals(TimeUnit.SECONDS, spec.expireAfterAccessTimeUnit); assertEquals(10L, spec.expireAfterAccessDuration); assertCaffeineEquivalence( Caffeine.newBuilder() .expireAfterAccess(10L, TimeUnit.SECONDS) .expireAfterWrite(9L, TimeUnit.MINUTES), Caffeine.from(spec)); }