aboutsummaryrefslogtreecommitdiffstats
path: root/guava-tests/test/com/google/common/cache/CacheBuilderSpecTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'guava-tests/test/com/google/common/cache/CacheBuilderSpecTest.java')
-rw-r--r--guava-tests/test/com/google/common/cache/CacheBuilderSpecTest.java539
1 files changed, 0 insertions, 539 deletions
diff --git a/guava-tests/test/com/google/common/cache/CacheBuilderSpecTest.java b/guava-tests/test/com/google/common/cache/CacheBuilderSpecTest.java
deleted file mode 100644
index 4149a9f..0000000
--- a/guava-tests/test/com/google/common/cache/CacheBuilderSpecTest.java
+++ /dev/null
@@ -1,539 +0,0 @@
-/*
- * Copyright (C) 2011 The Guava Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License 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.google.common.cache;
-
-import static com.google.common.cache.CacheBuilderSpec.parse;
-import static com.google.common.cache.TestingWeighers.constantWeigher;
-
-import com.google.common.base.Suppliers;
-import com.google.common.cache.LocalCache.Strength;
-import com.google.common.testing.EqualsTester;
-
-import junit.framework.TestCase;
-
-import java.util.concurrent.TimeUnit;
-
-/**
- * Tests CacheBuilderSpec.
- * TODO(user): tests of a few invalid input conditions, boundary conditions.
- *
- * @author Adam Winer
- */
-public class CacheBuilderSpecTest extends TestCase {
- public void testParse_empty() {
- CacheBuilderSpec spec = parse("");
- assertNull(spec.initialCapacity);
- assertNull(spec.maximumSize);
- assertNull(spec.maximumWeight);
- assertNull(spec.concurrencyLevel);
- assertNull(spec.keyStrength);
- assertNull(spec.valueStrength);
- assertNull(spec.writeExpirationTimeUnit);
- assertNull(spec.accessExpirationTimeUnit);
- assertCacheBuilderEquivalence(CacheBuilder.newBuilder(), CacheBuilder.from(spec));
- }
-
- public void testParse_initialCapacity() {
- CacheBuilderSpec spec = parse("initialCapacity=10");
- assertEquals(10, spec.initialCapacity.intValue());
- assertNull(spec.maximumSize);
- assertNull(spec.maximumWeight);
- assertNull(spec.concurrencyLevel);
- assertNull(spec.keyStrength);
- assertNull(spec.valueStrength);
- assertNull(spec.writeExpirationTimeUnit);
- assertNull(spec.accessExpirationTimeUnit);
- assertCacheBuilderEquivalence(
- CacheBuilder.newBuilder().initialCapacity(10), CacheBuilder.from(spec));
- }
-
- public void testParse_initialCapacityRepeated() {
- try {
- parse("initialCapacity=10, initialCapacity=20");
- fail("Expected exception");
- } catch (IllegalArgumentException expected) {
- // expected
- }
- }
-
- public void testParse_maximumSize() {
- CacheBuilderSpec spec = parse("maximumSize=9000");
- assertNull(spec.initialCapacity);
- assertEquals(9000, spec.maximumSize.longValue());
- assertNull(spec.concurrencyLevel);
- assertNull(spec.keyStrength);
- assertNull(spec.valueStrength);
- assertNull(spec.writeExpirationTimeUnit);
- assertNull(spec.accessExpirationTimeUnit);
- assertCacheBuilderEquivalence(
- CacheBuilder.newBuilder().maximumSize(9000), CacheBuilder.from(spec));
- }
-
- public void testParse_maximumSizeRepeated() {
- try {
- parse("maximumSize=10, maximumSize=20");
- fail("Expected exception");
- } catch (IllegalArgumentException expected) {
- // expected
- }
- }
-
- public void testParse_maximumWeight() {
- CacheBuilderSpec spec = parse("maximumWeight=9000");
- assertNull(spec.initialCapacity);
- assertEquals(9000, spec.maximumWeight.longValue());
- assertNull(spec.concurrencyLevel);
- assertNull(spec.keyStrength);
- assertNull(spec.valueStrength);
- assertNull(spec.writeExpirationTimeUnit);
- assertNull(spec.accessExpirationTimeUnit);
- assertCacheBuilderEquivalence(
- CacheBuilder.newBuilder().maximumWeight(9000), CacheBuilder.from(spec));
- }
-
- public void testParse_maximumWeightRepeated() {
- try {
- parse("maximumWeight=10, maximumWeight=20");
- fail("Expected exception");
- } catch (IllegalArgumentException expected) {
- // expected
- }
- }
-
- public void testParse_maximumSizeAndMaximumWeight() {
- try {
- parse("maximumSize=10, maximumWeight=20");
- fail("Expected exception");
- } catch (IllegalArgumentException expected) {
- // expected
- }
- }
-
- public void testParse_concurrencyLevel() {
- CacheBuilderSpec spec = parse("concurrencyLevel=32");
- assertNull(spec.initialCapacity);
- assertNull(spec.maximumSize);
- assertNull(spec.maximumWeight);
- assertEquals(32, spec.concurrencyLevel.intValue());
- assertNull(spec.keyStrength);
- assertNull(spec.valueStrength);
- assertNull(spec.writeExpirationTimeUnit);
- assertNull(spec.accessExpirationTimeUnit);
- assertCacheBuilderEquivalence(
- CacheBuilder.newBuilder().concurrencyLevel(32), CacheBuilder.from(spec));
- }
-
- public void testParse_concurrencyLevelRepeated() {
- try {
- parse("concurrencyLevel=10, concurrencyLevel=20");
- fail("Expected exception");
- } catch (IllegalArgumentException expected) {
- // expected
- }
- }
-
- public void testParse_weakKeys() {
- CacheBuilderSpec spec = parse("weakKeys");
- assertNull(spec.initialCapacity);
- assertNull(spec.maximumSize);
- assertNull(spec.maximumWeight);
- assertNull(spec.concurrencyLevel);
- assertEquals(Strength.WEAK, spec.keyStrength);
- assertNull(spec.valueStrength);
- assertNull(spec.writeExpirationTimeUnit);
- assertNull(spec.accessExpirationTimeUnit);
- assertCacheBuilderEquivalence(
- CacheBuilder.newBuilder().weakKeys(), CacheBuilder.from(spec));
- }
-
- public void testParse_weakKeysCannotHaveValue() {
- try {
- parse("weakKeys=true");
- fail("Expected exception");
- } catch (IllegalArgumentException expected) {
- // expected
- }
- }
-
- public void testParse_repeatedKeyStrength() {
- try {
- parse("weakKeys, weakKeys");
- fail("Expected exception");
- } catch (IllegalArgumentException expected) {
- // expected
- }
- }
-
- public void testParse_softValues() {
- CacheBuilderSpec spec = parse("softValues");
- assertNull(spec.initialCapacity);
- assertNull(spec.maximumSize);
- assertNull(spec.maximumWeight);
- assertNull(spec.concurrencyLevel);
- assertNull(spec.keyStrength);
- assertEquals(Strength.SOFT, spec.valueStrength);
- assertNull(spec.writeExpirationTimeUnit);
- assertNull(spec.accessExpirationTimeUnit);
- assertCacheBuilderEquivalence(
- CacheBuilder.newBuilder().softValues(), CacheBuilder.from(spec));
- }
-
- public void testParse_softValuesCannotHaveValue() {
- try {
- parse("softValues=true");
- fail("Expected exception");
- } catch (IllegalArgumentException expected) {
- // expected
- }
- }
-
- public void testParse_weakValues() {
- CacheBuilderSpec spec = parse("weakValues");
- assertNull(spec.initialCapacity);
- assertNull(spec.maximumSize);
- assertNull(spec.maximumWeight);
- assertNull(spec.concurrencyLevel);
- assertNull(spec.keyStrength);
- assertEquals(Strength.WEAK, spec.valueStrength);
- assertNull(spec.writeExpirationTimeUnit);
- assertNull(spec.accessExpirationTimeUnit);
- assertCacheBuilderEquivalence(
- CacheBuilder.newBuilder().weakValues(), CacheBuilder.from(spec));
- }
-
- public void testParse_weakValuesCannotHaveValue() {
- try {
- parse("weakValues=true");
- fail("Expected exception");
- } catch (IllegalArgumentException expected) {
- // expected
- }
- }
-
- public void testParse_repeatedValueStrength() {
- try {
- parse("softValues, softValues");
- fail("Expected exception");
- } catch (IllegalArgumentException expected) {
- // expected
- }
-
- try {
- parse("softValues, weakValues");
- fail("Expected exception");
- } catch (IllegalArgumentException expected) {
- // expected
- }
-
- try {
- parse("weakValues, softValues");
- fail("Expected exception");
- } catch (IllegalArgumentException expected) {
- // expected
- }
-
- try {
- parse("weakValues, weakValues");
- fail("Expected exception");
- } catch (IllegalArgumentException expected) {
- // expected
- }
- }
-
- public void testParse_writeExpirationDays() {
- CacheBuilderSpec spec = parse("expireAfterWrite=10d");
- assertNull(spec.initialCapacity);
- assertNull(spec.maximumSize);
- assertNull(spec.maximumWeight);
- assertNull(spec.concurrencyLevel);
- assertNull(spec.keyStrength);
- assertNull(spec.valueStrength);
- assertEquals(TimeUnit.DAYS, spec.writeExpirationTimeUnit);
- assertEquals(10L, spec.writeExpirationDuration);
- assertNull(spec.accessExpirationTimeUnit);
- assertCacheBuilderEquivalence(
- CacheBuilder.newBuilder().expireAfterWrite(10L, TimeUnit.DAYS), CacheBuilder.from(spec));
- }
-
- public void testParse_writeExpirationHours() {
- CacheBuilderSpec spec = parse("expireAfterWrite=150h");
- assertEquals(TimeUnit.HOURS, spec.writeExpirationTimeUnit);
- assertEquals(150L, spec.writeExpirationDuration);
- assertCacheBuilderEquivalence(
- CacheBuilder.newBuilder().expireAfterWrite(150L, TimeUnit.HOURS), CacheBuilder.from(spec));
- }
-
- public void testParse_writeExpirationMinutes() {
- CacheBuilderSpec spec = parse("expireAfterWrite=10m");
- assertEquals(TimeUnit.MINUTES, spec.writeExpirationTimeUnit);
- assertEquals(10L, spec.writeExpirationDuration);
- assertCacheBuilderEquivalence(
- CacheBuilder.newBuilder().expireAfterWrite(10L, TimeUnit.MINUTES), CacheBuilder.from(spec));
- }
-
- public void testParse_writeExpirationSeconds() {
- CacheBuilderSpec spec = parse("expireAfterWrite=10s");
- assertEquals(TimeUnit.SECONDS, spec.writeExpirationTimeUnit);
- assertEquals(10L, spec.writeExpirationDuration);
- assertCacheBuilderEquivalence(
- CacheBuilder.newBuilder().expireAfterWrite(10L, TimeUnit.SECONDS), CacheBuilder.from(spec));
- }
-
- public void testParse_writeExpirationRepeated() {
- try {
- parse(
- "expireAfterWrite=10s,expireAfterWrite=10m");
- fail("Expected exception");
- } catch (IllegalArgumentException expected) {
- // expected
- }
- }
-
- public void testParse_accessExpirationDays() {
- CacheBuilderSpec spec = parse("expireAfterAccess=10d");
- assertNull(spec.initialCapacity);
- assertNull(spec.maximumSize);
- assertNull(spec.maximumWeight);
- assertNull(spec.concurrencyLevel);
- assertNull(spec.keyStrength);
- assertNull(spec.valueStrength);
- assertNull(spec.writeExpirationTimeUnit);
- assertEquals(TimeUnit.DAYS, spec.accessExpirationTimeUnit);
- assertEquals(10L, spec.accessExpirationDuration);
- assertCacheBuilderEquivalence(
- CacheBuilder.newBuilder().expireAfterAccess(10L, TimeUnit.DAYS), CacheBuilder.from(spec));
- }
-
- public void testParse_accessExpirationHours() {
- CacheBuilderSpec spec = parse("expireAfterAccess=150h");
- assertEquals(TimeUnit.HOURS, spec.accessExpirationTimeUnit);
- assertEquals(150L, spec.accessExpirationDuration);
- assertCacheBuilderEquivalence(
- CacheBuilder.newBuilder().expireAfterAccess(150L, TimeUnit.HOURS), CacheBuilder.from(spec));
- }
-
- public void testParse_accessExpirationMinutes() {
- CacheBuilderSpec spec = parse("expireAfterAccess=10m");
- assertEquals(TimeUnit.MINUTES, spec.accessExpirationTimeUnit);
- assertEquals(10L, spec.accessExpirationDuration);
- assertCacheBuilderEquivalence(
- CacheBuilder.newBuilder().expireAfterAccess(10L, TimeUnit.MINUTES),
- CacheBuilder.from(spec));
- }
-
- public void testParse_accessExpirationSeconds() {
- CacheBuilderSpec spec = parse("expireAfterAccess=10s");
- assertEquals(TimeUnit.SECONDS, spec.accessExpirationTimeUnit);
- assertEquals(10L, spec.accessExpirationDuration);
- assertCacheBuilderEquivalence(
- CacheBuilder.newBuilder().expireAfterAccess(10L, TimeUnit.SECONDS),
- CacheBuilder.from(spec));
- }
-
- public void testParse_accessExpirationRepeated() {
- try {
- parse(
- "expireAfterAccess=10s,expireAfterAccess=10m");
- fail("Expected exception");
- } catch (IllegalArgumentException expected) {
- // expected
- }
- }
-
- public void testParse_accessExpirationAndWriteExpiration() {
- CacheBuilderSpec spec = parse("expireAfterAccess=10s,expireAfterWrite=9m");
- assertEquals(TimeUnit.MINUTES, spec.writeExpirationTimeUnit);
- assertEquals(9L, spec.writeExpirationDuration);
- assertEquals(TimeUnit.SECONDS, spec.accessExpirationTimeUnit);
- assertEquals(10L, spec.accessExpirationDuration);
- assertCacheBuilderEquivalence(
- CacheBuilder.newBuilder()
- .expireAfterAccess(10L, TimeUnit.SECONDS)
- .expireAfterWrite(9L, TimeUnit.MINUTES),
- CacheBuilder.from(spec));
- }
-
- public void testParse_multipleKeys() {
- CacheBuilderSpec spec = parse("initialCapacity=10,maximumSize=20,concurrencyLevel=30,"
- + "weakKeys,weakValues,expireAfterAccess=10m,expireAfterWrite=1h");
- assertEquals(10, spec.initialCapacity.intValue());
- assertEquals(20, spec.maximumSize.intValue());
- assertNull(spec.maximumWeight);
- assertEquals(30, spec.concurrencyLevel.intValue());
- assertEquals(Strength.WEAK, spec.keyStrength);
- assertEquals(Strength.WEAK, spec.valueStrength);
- assertEquals(TimeUnit.HOURS, spec.writeExpirationTimeUnit);
- assertEquals(TimeUnit.MINUTES, spec.accessExpirationTimeUnit);
- assertEquals(1L, spec.writeExpirationDuration);
- assertEquals(10L, spec.accessExpirationDuration);
- CacheBuilder expected = CacheBuilder.newBuilder()
- .initialCapacity(10)
- .maximumSize(20)
- .concurrencyLevel(30)
- .weakKeys()
- .weakValues()
- .expireAfterAccess(10L, TimeUnit.MINUTES)
- .expireAfterWrite(1L, TimeUnit.HOURS);
- assertCacheBuilderEquivalence(expected, CacheBuilder.from(spec));
- }
-
- public void testParse_whitespaceAllowed() {
- CacheBuilderSpec spec = parse(" initialCapacity=10,\nmaximumSize=20,\t\r"
- + "weakKeys \t ,softValues \n , \r expireAfterWrite \t = 15s\n\n");
- assertEquals(10, spec.initialCapacity.intValue());
- assertEquals(20, spec.maximumSize.intValue());
- assertNull(spec.maximumWeight);
- assertNull(spec.concurrencyLevel);
- assertEquals(Strength.WEAK, spec.keyStrength);
- assertEquals(Strength.SOFT, spec.valueStrength);
- assertEquals(TimeUnit.SECONDS, spec.writeExpirationTimeUnit);
- assertEquals(15L, spec.writeExpirationDuration);
- assertNull(spec.accessExpirationTimeUnit);
- CacheBuilder expected = CacheBuilder.newBuilder()
- .initialCapacity(10)
- .maximumSize(20)
- .weakKeys()
- .softValues()
- .expireAfterWrite(15L, TimeUnit.SECONDS);
- assertCacheBuilderEquivalence(expected, CacheBuilder.from(spec));
- }
-
- public void testParse_unknownKey() {
- try {
- parse("foo=17");
- fail("Expected exception");
- } catch (IllegalArgumentException expected) {
- // expected
- }
- }
-
- public void testParse_extraCommaIsInvalid() {
- try {
- parse("weakKeys,");
- fail("Expected exception");
- } catch (IllegalArgumentException expected) {
- // expected
- }
-
- try {
- parse(",weakKeys");
- fail("Expected exception");
- } catch (IllegalArgumentException expected) {
- // expected
- }
-
- try {
- parse("weakKeys,,softValues");
- fail("Expected exception");
- } catch (IllegalArgumentException expected) {
- // expected
- }
- }
-
- public void testEqualsAndHashCode() {
- new EqualsTester()
- .addEqualityGroup(parse(""), parse(""))
- .addEqualityGroup(parse("concurrencyLevel=7"), parse("concurrencyLevel=7"))
- .addEqualityGroup(parse("concurrencyLevel=15"), parse("concurrencyLevel=15"))
- .addEqualityGroup(parse("initialCapacity=7"), parse("initialCapacity=7"))
- .addEqualityGroup(parse("initialCapacity=15"), parse("initialCapacity=15"))
- .addEqualityGroup(parse("maximumSize=7"), parse("maximumSize=7"))
- .addEqualityGroup(parse("maximumSize=15"), parse("maximumSize=15"))
- .addEqualityGroup(parse("maximumWeight=7"), parse("maximumWeight=7"))
- .addEqualityGroup(parse("maximumWeight=15"), parse("maximumWeight=15"))
- .addEqualityGroup(parse("expireAfterAccess=60s"), parse("expireAfterAccess=1m"))
- .addEqualityGroup(parse("expireAfterAccess=60m"), parse("expireAfterAccess=1h"))
- .addEqualityGroup(parse("expireAfterWrite=60s"), parse("expireAfterWrite=1m"))
- .addEqualityGroup(parse("expireAfterWrite=60m"), parse("expireAfterWrite=1h"))
- .addEqualityGroup(parse("weakKeys"), parse("weakKeys"))
- .addEqualityGroup(parse("softValues"), parse("softValues"))
- .addEqualityGroup(parse("weakValues"), parse("weakValues"))
- .testEquals();
- }
-
- public void testMaximumWeight_withWeigher() {
- CacheBuilder<Object, Object> builder = CacheBuilder.from(parse("maximumWeight=9000"));
- builder
- .weigher(constantWeigher(42))
- .build(CacheLoader.from(Suppliers.ofInstance(null)));
- }
-
- public void testMaximumWeight_withoutWeigher() {
- CacheBuilder<Object, Object> builder = CacheBuilder.from(parse("maximumWeight=9000"));
- try {
- builder.build(CacheLoader.from(Suppliers.ofInstance(null)));
- fail();
- } catch (IllegalStateException expected) {}
- }
-
- public void testMaximumSize_withWeigher() {
- CacheBuilder<Object, Object> builder = CacheBuilder.from(parse("maximumSize=9000"));
- builder
- .weigher(constantWeigher(42))
- .build(CacheLoader.from(Suppliers.ofInstance(null)));
- }
-
- public void testMaximumSize_withoutWeigher() {
- CacheBuilder<Object, Object> builder = CacheBuilder.from(parse("maximumSize=9000"));
- builder.build(CacheLoader.from(Suppliers.ofInstance(null)));
- }
-
- public void testDisableCaching() {
- // Functional test: assert that CacheBuilderSpec.disableCaching()
- // disables caching. It's irrelevant how it does so.
- CacheBuilder<Object, Object> builder = CacheBuilder.from(CacheBuilderSpec.disableCaching());
- Object key = new Object();
- Object value = new Object();
- LoadingCache<Object, Object> cache = builder.build(
- CacheLoader.from(Suppliers.ofInstance(value)));
- assertSame(value, cache.getUnchecked(key));
- assertEquals(0, cache.size());
- assertFalse(cache.asMap().containsKey(key));
- }
-
- public void testCacheBuilderFrom_string() {
- CacheBuilder fromString = CacheBuilder.from(
- "initialCapacity=10,maximumSize=20,concurrencyLevel=30,"
- + "weakKeys,weakValues,expireAfterAccess=10m");
- CacheBuilder expected = CacheBuilder.newBuilder()
- .initialCapacity(10)
- .maximumSize(20)
- .concurrencyLevel(30)
- .weakKeys()
- .weakValues()
- .expireAfterAccess(10L, TimeUnit.MINUTES);
- assertCacheBuilderEquivalence(expected, fromString);
- }
-
- private static void assertCacheBuilderEquivalence(CacheBuilder a, CacheBuilder b) {
- assertEquals("concurrencyLevel", a.concurrencyLevel, b.concurrencyLevel);
- assertEquals("expireAfterAccessNanos", a.expireAfterAccessNanos, b.expireAfterAccessNanos);
- assertEquals("expireAfterWriteNanos", a.expireAfterWriteNanos, b.expireAfterWriteNanos);
- assertEquals("initialCapacity", a.initialCapacity, b.initialCapacity);
- assertEquals("maximumSize", a.maximumSize, b.maximumSize);
- assertEquals("maximumWeight", a.maximumWeight, b.maximumWeight);
- assertEquals("refreshNanos", a.refreshNanos, b.refreshNanos);
- assertEquals("keyEquivalence", a.keyEquivalence, b.keyEquivalence);
- assertEquals("keyStrength", a.keyStrength, b.keyStrength);
- assertEquals("removalListener", a.removalListener, b.removalListener);
- assertEquals("weigher", a.weigher, b.weigher);
- assertEquals("valueEquivalence", a.valueEquivalence, b.valueEquivalence);
- assertEquals("valueStrength", a.valueStrength, b.valueStrength);
- assertEquals("statsCounterSupplier", a.statsCounterSupplier, b.statsCounterSupplier);
- assertEquals("ticker", a.ticker, b.ticker);
- }
-}