@Test(expectedExceptions = IllegalStateException.class) public void weakKeys_writer() { Caffeine.newBuilder().writer(writer).weakKeys(); }
@Test public void weakKeys() { Caffeine.newBuilder().weakKeys().build(); }
@Test(expectedExceptions = IllegalStateException.class) public void writer_weakKeys() { Caffeine.newBuilder().writer(writer).weakKeys(); }
@Test public void configured() { Caffeine<Object, Object> configured = Caffeine.newBuilder() .initialCapacity(1).weakKeys() .expireAfterAccess(1, TimeUnit.SECONDS).expireAfterWrite(1, TimeUnit.SECONDS) .removalListener((k, v, c) -> {}).recordStats(); assertThat(configured.build(), is(not(nullValue()))); assertThat(configured.buildAsync(), is(not(nullValue()))); assertThat(configured.build(loader), is(not(nullValue()))); assertThat(configured.buildAsync(loader), is(not(nullValue()))); assertThat(configured.refreshAfterWrite(1, TimeUnit.SECONDS).toString(), is(not(Caffeine.newBuilder().toString()))); assertThat(Caffeine.newBuilder().maximumSize(1).toString(), is(not(Caffeine.newBuilder().maximumWeight(1).toString()))); }
builder.weakKeys();
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); }
builder.weakKeys();
builder.weakKeys();
public void testParse_weakKeys() { CaffeineSpec spec = parse("weakKeys"); assertEquals(spec.initialCapacity, UNSET_INT); assertEquals(spec.maximumSize, UNSET_INT); assertEquals(spec.maximumWeight, UNSET_INT); assertEquals(Strength.WEAK, spec.keyStrength); assertNull(spec.valueStrength); assertNull(spec.expireAfterWriteTimeUnit); assertNull(spec.expireAfterAccessTimeUnit); assertNull(spec.refreshAfterWriteTimeUnit); assertCaffeineEquivalence( Caffeine.newBuilder().weakKeys(), Caffeine.from(spec)); }
public void testParse_whitespaceAllowed() { CaffeineSpec spec = parse(" initialCapacity=10,\nmaximumSize=20,\t\r" + "weakKeys \t ,softValues \n , \r expireAfterWrite \t = 15s\n\n"); assertEquals(10, spec.initialCapacity); assertEquals(20, spec.maximumSize); assertEquals(spec.maximumWeight, UNSET_INT); assertEquals(Strength.WEAK, spec.keyStrength); assertEquals(Strength.SOFT, spec.valueStrength); assertEquals(TimeUnit.SECONDS, spec.expireAfterWriteTimeUnit); assertEquals(15L, spec.expireAfterWriteDuration); assertNull(spec.expireAfterAccessTimeUnit); Caffeine<?, ?> expected = Caffeine.newBuilder() .initialCapacity(10) .maximumSize(20) .weakKeys() .softValues() .expireAfterWrite(15L, TimeUnit.SECONDS); assertCaffeineEquivalence(expected, Caffeine.from(spec)); }
public void testParse_multipleKeys() { CaffeineSpec spec = parse("initialCapacity=10,maximumSize=20," + "weakKeys,weakValues,expireAfterAccess=10m,expireAfterWrite=1h"); assertEquals(10, spec.initialCapacity); assertEquals(20, spec.maximumSize); assertEquals(spec.maximumWeight, UNSET_INT); assertEquals(Strength.WEAK, spec.keyStrength); assertEquals(Strength.WEAK, spec.valueStrength); assertEquals(TimeUnit.HOURS, spec.expireAfterWriteTimeUnit); assertEquals(TimeUnit.MINUTES, spec.expireAfterAccessTimeUnit); assertEquals(1L, spec.expireAfterWriteDuration); assertEquals(10L, spec.expireAfterAccessDuration); Caffeine<?, ?> expected = Caffeine.newBuilder() .initialCapacity(10) .maximumSize(20) .weakKeys() .weakValues() .expireAfterAccess(10L, TimeUnit.MINUTES) .expireAfterWrite(1L, TimeUnit.HOURS); assertCaffeineEquivalence(expected, Caffeine.from(spec)); }
builder.weakKeys(); } else if (context.keyStrength == ReferenceType.SOFT) { throw new IllegalStateException();
static <Q, T> LoadingCache<Q, T> build(CacheLoader<Q, T> c) { return Caffeine.newBuilder().weakKeys().softValues().build(c); }
static <Q, T> LoadingCache<Q, T> build(CacheLoader<Q, T> c) { return Caffeine.newBuilder().weakKeys().softValues().build(c); }
static <Q, T> LoadingCache<Q, T> build(CacheLoader<Q, T> c) { return Caffeine.newBuilder().weakKeys().softValues().build(c); }