Java 类com.google.common.cache.LocalCache.LocalLoadingCache 实例源码
项目:guava-mock
文件:LocalLoadingCacheTest.java
public void testNoStats() {
CacheBuilder<Object, Object> builder = CacheBuilder.newBuilder()
.concurrencyLevel(1)
.maximumSize(2);
LocalLoadingCache<Object, Object> cache = makeCache(builder, identityLoader());
assertEquals(EMPTY_STATS, cache.stats());
Object one = new Object();
cache.getUnchecked(one);
assertEquals(EMPTY_STATS, cache.stats());
cache.getUnchecked(one);
assertEquals(EMPTY_STATS, cache.stats());
Object two = new Object();
cache.getUnchecked(two);
assertEquals(EMPTY_STATS, cache.stats());
Object three = new Object();
cache.getUnchecked(three);
assertEquals(EMPTY_STATS, cache.stats());
}
项目:guava-mock
文件:LocalLoadingCacheTest.java
/**
* Lookups on the map view shouldn't impact the recency queue.
*/
public void testAsMapRecency() {
CacheBuilder<Object, Object> builder = createCacheBuilder()
.concurrencyLevel(1)
.maximumSize(SMALL_MAX_SIZE);
LocalLoadingCache<Object, Object> cache = makeCache(builder, identityLoader());
Segment<Object, Object> segment = cache.localCache.segments[0];
ConcurrentMap<Object, Object> map = cache.asMap();
Object one = new Object();
assertSame(one, cache.getUnchecked(one));
assertTrue(segment.recencyQueue.isEmpty());
assertSame(one, map.get(one));
assertSame(one, segment.recencyQueue.peek().getKey());
assertSame(one, cache.getUnchecked(one));
assertFalse(segment.recencyQueue.isEmpty());
}
项目:googles-monorepo-demo
文件:LocalLoadingCacheTest.java
public void testNoStats() {
CacheBuilder<Object, Object> builder = CacheBuilder.newBuilder()
.concurrencyLevel(1)
.maximumSize(2);
LocalLoadingCache<Object, Object> cache = makeCache(builder, identityLoader());
assertEquals(EMPTY_STATS, cache.stats());
Object one = new Object();
cache.getUnchecked(one);
assertEquals(EMPTY_STATS, cache.stats());
cache.getUnchecked(one);
assertEquals(EMPTY_STATS, cache.stats());
Object two = new Object();
cache.getUnchecked(two);
assertEquals(EMPTY_STATS, cache.stats());
Object three = new Object();
cache.getUnchecked(three);
assertEquals(EMPTY_STATS, cache.stats());
}
项目:googles-monorepo-demo
文件:LocalLoadingCacheTest.java
/**
* Lookups on the map view shouldn't impact the recency queue.
*/
public void testAsMapRecency() {
CacheBuilder<Object, Object> builder = createCacheBuilder()
.concurrencyLevel(1)
.maximumSize(SMALL_MAX_SIZE);
LocalLoadingCache<Object, Object> cache = makeCache(builder, identityLoader());
Segment<Object, Object> segment = cache.localCache.segments[0];
ConcurrentMap<Object, Object> map = cache.asMap();
Object one = new Object();
assertSame(one, cache.getUnchecked(one));
assertTrue(segment.recencyQueue.isEmpty());
assertSame(one, map.get(one));
assertSame(one, segment.recencyQueue.peek().getKey());
assertSame(one, cache.getUnchecked(one));
assertFalse(segment.recencyQueue.isEmpty());
}
项目:guava-libraries
文件:LocalLoadingCacheTest.java
public void testNoStats() {
CacheBuilder<Object, Object> builder = CacheBuilder.newBuilder()
.concurrencyLevel(1)
.maximumSize(2);
LocalLoadingCache<Object, Object> cache = makeCache(builder, identityLoader());
assertEquals(EMPTY_STATS, cache.stats());
Object one = new Object();
cache.getUnchecked(one);
assertEquals(EMPTY_STATS, cache.stats());
cache.getUnchecked(one);
assertEquals(EMPTY_STATS, cache.stats());
Object two = new Object();
cache.getUnchecked(two);
assertEquals(EMPTY_STATS, cache.stats());
Object three = new Object();
cache.getUnchecked(three);
assertEquals(EMPTY_STATS, cache.stats());
}
项目:guava-libraries
文件:LocalLoadingCacheTest.java
/**
* Lookups on the map view shouldn't impact the recency queue.
*/
public void testAsMapRecency() {
CacheBuilder<Object, Object> builder = createCacheBuilder()
.concurrencyLevel(1)
.maximumSize(SMALL_MAX_SIZE);
LocalLoadingCache<Object, Object> cache = makeCache(builder, identityLoader());
Segment<Object, Object> segment = cache.localCache.segments[0];
ConcurrentMap<Object, Object> map = cache.asMap();
Object one = new Object();
assertSame(one, cache.getUnchecked(one));
assertTrue(segment.recencyQueue.isEmpty());
assertSame(one, map.get(one));
assertSame(one, segment.recencyQueue.peek().getKey());
assertSame(one, cache.getUnchecked(one));
assertFalse(segment.recencyQueue.isEmpty());
}
项目:guava
文件:LocalLoadingCacheTest.java
public void testNoStats() {
CacheBuilder<Object, Object> builder =
CacheBuilder.newBuilder().concurrencyLevel(1).maximumSize(2);
LocalLoadingCache<Object, Object> cache = makeCache(builder, identityLoader());
assertEquals(EMPTY_STATS, cache.stats());
Object one = new Object();
cache.getUnchecked(one);
assertEquals(EMPTY_STATS, cache.stats());
cache.getUnchecked(one);
assertEquals(EMPTY_STATS, cache.stats());
Object two = new Object();
cache.getUnchecked(two);
assertEquals(EMPTY_STATS, cache.stats());
Object three = new Object();
cache.getUnchecked(three);
assertEquals(EMPTY_STATS, cache.stats());
}
项目:guava
文件:LocalLoadingCacheTest.java
public void testRecordStats() {
CacheBuilder<Object, Object> builder =
createCacheBuilder().recordStats().concurrencyLevel(1).maximumSize(2);
LocalLoadingCache<Object, Object> cache = makeCache(builder, identityLoader());
assertEquals(0, cache.stats().hitCount());
assertEquals(0, cache.stats().missCount());
Object one = new Object();
cache.getUnchecked(one);
assertEquals(0, cache.stats().hitCount());
assertEquals(1, cache.stats().missCount());
cache.getUnchecked(one);
assertEquals(1, cache.stats().hitCount());
assertEquals(1, cache.stats().missCount());
Object two = new Object();
cache.getUnchecked(two);
assertEquals(1, cache.stats().hitCount());
assertEquals(2, cache.stats().missCount());
Object three = new Object();
cache.getUnchecked(three);
assertEquals(1, cache.stats().hitCount());
assertEquals(3, cache.stats().missCount());
}
项目:guava
文件:LocalLoadingCacheTest.java
/** Lookups on the map view shouldn't impact the recency queue. */
public void testAsMapRecency() {
CacheBuilder<Object, Object> builder =
createCacheBuilder().concurrencyLevel(1).maximumSize(SMALL_MAX_SIZE);
LocalLoadingCache<Object, Object> cache = makeCache(builder, identityLoader());
Segment<Object, Object> segment = cache.localCache.segments[0];
ConcurrentMap<Object, Object> map = cache.asMap();
Object one = new Object();
assertSame(one, cache.getUnchecked(one));
assertTrue(segment.recencyQueue.isEmpty());
assertSame(one, map.get(one));
assertSame(one, segment.recencyQueue.peek().getKey());
assertSame(one, cache.getUnchecked(one));
assertFalse(segment.recencyQueue.isEmpty());
}
项目:guava
文件:LocalLoadingCacheTest.java
public void testNoStats() {
CacheBuilder<Object, Object> builder =
CacheBuilder.newBuilder().concurrencyLevel(1).maximumSize(2);
LocalLoadingCache<Object, Object> cache = makeCache(builder, identityLoader());
assertEquals(EMPTY_STATS, cache.stats());
Object one = new Object();
cache.getUnchecked(one);
assertEquals(EMPTY_STATS, cache.stats());
cache.getUnchecked(one);
assertEquals(EMPTY_STATS, cache.stats());
Object two = new Object();
cache.getUnchecked(two);
assertEquals(EMPTY_STATS, cache.stats());
Object three = new Object();
cache.getUnchecked(three);
assertEquals(EMPTY_STATS, cache.stats());
}
项目:guava
文件:LocalLoadingCacheTest.java
public void testRecordStats() {
CacheBuilder<Object, Object> builder =
createCacheBuilder().recordStats().concurrencyLevel(1).maximumSize(2);
LocalLoadingCache<Object, Object> cache = makeCache(builder, identityLoader());
assertEquals(0, cache.stats().hitCount());
assertEquals(0, cache.stats().missCount());
Object one = new Object();
cache.getUnchecked(one);
assertEquals(0, cache.stats().hitCount());
assertEquals(1, cache.stats().missCount());
cache.getUnchecked(one);
assertEquals(1, cache.stats().hitCount());
assertEquals(1, cache.stats().missCount());
Object two = new Object();
cache.getUnchecked(two);
assertEquals(1, cache.stats().hitCount());
assertEquals(2, cache.stats().missCount());
Object three = new Object();
cache.getUnchecked(three);
assertEquals(1, cache.stats().hitCount());
assertEquals(3, cache.stats().missCount());
}
项目:guava
文件:LocalLoadingCacheTest.java
/** Lookups on the map view shouldn't impact the recency queue. */
public void testAsMapRecency() {
CacheBuilder<Object, Object> builder =
createCacheBuilder().concurrencyLevel(1).maximumSize(SMALL_MAX_SIZE);
LocalLoadingCache<Object, Object> cache = makeCache(builder, identityLoader());
Segment<Object, Object> segment = cache.localCache.segments[0];
ConcurrentMap<Object, Object> map = cache.asMap();
Object one = new Object();
assertSame(one, cache.getUnchecked(one));
assertTrue(segment.recencyQueue.isEmpty());
assertSame(one, map.get(one));
assertSame(one, segment.recencyQueue.peek().getKey());
assertSame(one, cache.getUnchecked(one));
assertFalse(segment.recencyQueue.isEmpty());
}
项目:guava-mock
文件:LocalLoadingCacheTest.java
public void testComputingFunction() {
CacheLoader<Object, Object> loader = new CacheLoader<Object, Object>() {
@Override
public Object load(Object from) {
return new Object();
}
};
LocalLoadingCache<Object, Object> cache = makeCache(createCacheBuilder(), loader);
assertSame(loader, cache.localCache.defaultLoader);
}
项目:guava-mock
文件:LocalLoadingCacheTest.java
public void testRecordStats() {
CacheBuilder<Object, Object> builder = createCacheBuilder()
.recordStats()
.concurrencyLevel(1)
.maximumSize(2);
LocalLoadingCache<Object, Object> cache = makeCache(builder, identityLoader());
assertEquals(0, cache.stats().hitCount());
assertEquals(0, cache.stats().missCount());
Object one = new Object();
cache.getUnchecked(one);
assertEquals(0, cache.stats().hitCount());
assertEquals(1, cache.stats().missCount());
cache.getUnchecked(one);
assertEquals(1, cache.stats().hitCount());
assertEquals(1, cache.stats().missCount());
Object two = new Object();
cache.getUnchecked(two);
assertEquals(1, cache.stats().hitCount());
assertEquals(2, cache.stats().missCount());
Object three = new Object();
cache.getUnchecked(three);
assertEquals(1, cache.stats().hitCount());
assertEquals(3, cache.stats().missCount());
}
项目:guava-mock
文件:CacheTesting.java
/**
* Gets the {@link LocalCache} used by the given {@link Cache}, if any, or throws an
* IllegalArgumentException if this is a Cache type that doesn't have a LocalCache.
*/
static <K, V> LocalCache<K, V> toLocalCache(Cache<K, V> cache) {
if (cache instanceof LocalLoadingCache) {
return ((LocalLoadingCache<K, V>) cache).localCache;
}
throw new IllegalArgumentException("Cache of type " + cache.getClass()
+ " doesn't have a LocalCache.");
}
项目:googles-monorepo-demo
文件:LocalLoadingCacheTest.java
public void testComputingFunction() {
CacheLoader<Object, Object> loader = new CacheLoader<Object, Object>() {
@Override
public Object load(Object from) {
return new Object();
}
};
LocalLoadingCache<Object, Object> cache = makeCache(createCacheBuilder(), loader);
assertSame(loader, cache.localCache.defaultLoader);
}
项目:googles-monorepo-demo
文件:LocalLoadingCacheTest.java
public void testRecordStats() {
CacheBuilder<Object, Object> builder = createCacheBuilder()
.recordStats()
.concurrencyLevel(1)
.maximumSize(2);
LocalLoadingCache<Object, Object> cache = makeCache(builder, identityLoader());
assertEquals(0, cache.stats().hitCount());
assertEquals(0, cache.stats().missCount());
Object one = new Object();
cache.getUnchecked(one);
assertEquals(0, cache.stats().hitCount());
assertEquals(1, cache.stats().missCount());
cache.getUnchecked(one);
assertEquals(1, cache.stats().hitCount());
assertEquals(1, cache.stats().missCount());
Object two = new Object();
cache.getUnchecked(two);
assertEquals(1, cache.stats().hitCount());
assertEquals(2, cache.stats().missCount());
Object three = new Object();
cache.getUnchecked(three);
assertEquals(1, cache.stats().hitCount());
assertEquals(3, cache.stats().missCount());
}
项目:googles-monorepo-demo
文件:CacheTesting.java
/**
* Gets the {@link LocalCache} used by the given {@link Cache}, if any, or throws an
* IllegalArgumentException if this is a Cache type that doesn't have a LocalCache.
*/
static <K, V> LocalCache<K, V> toLocalCache(Cache<K, V> cache) {
if (cache instanceof LocalLoadingCache) {
return ((LocalLoadingCache<K, V>) cache).localCache;
}
throw new IllegalArgumentException("Cache of type " + cache.getClass()
+ " doesn't have a LocalCache.");
}
项目:guava-libraries
文件:LocalLoadingCacheTest.java
public void testComputingFunction() {
CacheLoader<Object, Object> loader = new CacheLoader<Object, Object>() {
@Override
public Object load(Object from) {
return new Object();
}
};
LocalLoadingCache<Object, Object> cache = makeCache(createCacheBuilder(), loader);
assertSame(loader, cache.localCache.defaultLoader);
}
项目:guava-libraries
文件:LocalLoadingCacheTest.java
public void testRecordStats() {
CacheBuilder<Object, Object> builder = createCacheBuilder()
.recordStats()
.concurrencyLevel(1)
.maximumSize(2);
LocalLoadingCache<Object, Object> cache = makeCache(builder, identityLoader());
assertEquals(0, cache.stats().hitCount());
assertEquals(0, cache.stats().missCount());
Object one = new Object();
cache.getUnchecked(one);
assertEquals(0, cache.stats().hitCount());
assertEquals(1, cache.stats().missCount());
cache.getUnchecked(one);
assertEquals(1, cache.stats().hitCount());
assertEquals(1, cache.stats().missCount());
Object two = new Object();
cache.getUnchecked(two);
assertEquals(1, cache.stats().hitCount());
assertEquals(2, cache.stats().missCount());
Object three = new Object();
cache.getUnchecked(three);
assertEquals(1, cache.stats().hitCount());
assertEquals(3, cache.stats().missCount());
}
项目:guava-libraries
文件:CacheTesting.java
/**
* Gets the {@link LocalCache} used by the given {@link Cache}, if any, or throws an
* IllegalArgumentException if this is a Cache type that doesn't have a LocalCache.
*/
static <K, V> LocalCache<K, V> toLocalCache(Cache<K, V> cache) {
if (cache instanceof LocalLoadingCache) {
return ((LocalLoadingCache<K, V>) cache).localCache;
}
throw new IllegalArgumentException("Cache of type " + cache.getClass()
+ " doesn't have a LocalCache.");
}
项目:guava
文件:LocalLoadingCacheTest.java
public void testComputingFunction() {
CacheLoader<Object, Object> loader =
new CacheLoader<Object, Object>() {
@Override
public Object load(Object from) {
return new Object();
}
};
LocalLoadingCache<Object, Object> cache = makeCache(createCacheBuilder(), loader);
assertSame(loader, cache.localCache.defaultLoader);
}
项目:guava
文件:CacheTesting.java
/**
* Gets the {@link LocalCache} used by the given {@link Cache}, if any, or throws an
* IllegalArgumentException if this is a Cache type that doesn't have a LocalCache.
*/
static <K, V> LocalCache<K, V> toLocalCache(Cache<K, V> cache) {
if (cache instanceof LocalLoadingCache) {
return ((LocalLoadingCache<K, V>) cache).localCache;
}
throw new IllegalArgumentException(
"Cache of type " + cache.getClass() + " doesn't have a LocalCache.");
}
项目:guava
文件:LocalLoadingCacheTest.java
public void testComputingFunction() {
CacheLoader<Object, Object> loader =
new CacheLoader<Object, Object>() {
@Override
public Object load(Object from) {
return new Object();
}
};
LocalLoadingCache<Object, Object> cache = makeCache(createCacheBuilder(), loader);
assertSame(loader, cache.localCache.defaultLoader);
}
项目:guava
文件:CacheTesting.java
/**
* Gets the {@link LocalCache} used by the given {@link Cache}, if any, or throws an
* IllegalArgumentException if this is a Cache type that doesn't have a LocalCache.
*/
static <K, V> LocalCache<K, V> toLocalCache(Cache<K, V> cache) {
if (cache instanceof LocalLoadingCache) {
return ((LocalLoadingCache<K, V>) cache).localCache;
}
throw new IllegalArgumentException(
"Cache of type " + cache.getClass() + " doesn't have a LocalCache.");
}
项目:guava-mock
文件:LocalCacheTest.java
public void testSerializationProxyLoading() {
CacheLoader<Object, Object> loader = new SerializableCacheLoader();
RemovalListener<Object, Object> listener = new SerializableRemovalListener<Object, Object>();
SerializableWeigher<Object, Object> weigher = new SerializableWeigher<Object, Object>();
Ticker ticker = new SerializableTicker();
@SuppressWarnings("unchecked") // createMock
LocalLoadingCache<Object, Object> one = (LocalLoadingCache) CacheBuilder.newBuilder()
.weakKeys()
.softValues()
.expireAfterAccess(123, SECONDS)
.expireAfterWrite(456, MINUTES)
.maximumWeight(789)
.weigher(weigher)
.concurrencyLevel(12)
.removalListener(listener)
.ticker(ticker)
.build(loader);
// add a non-serializable entry
one.getUnchecked(new Object());
assertEquals(1, one.size());
assertFalse(one.asMap().isEmpty());
LocalLoadingCache<Object, Object> two = SerializableTester.reserialize(one);
assertEquals(0, two.size());
assertTrue(two.asMap().isEmpty());
LocalCache<Object, Object> localCacheOne = one.localCache;
LocalCache<Object, Object> localCacheTwo = two.localCache;
assertEquals(localCacheOne.keyStrength, localCacheTwo.keyStrength);
assertEquals(localCacheOne.keyStrength, localCacheTwo.keyStrength);
assertEquals(localCacheOne.valueEquivalence, localCacheTwo.valueEquivalence);
assertEquals(localCacheOne.valueEquivalence, localCacheTwo.valueEquivalence);
assertEquals(localCacheOne.maxWeight, localCacheTwo.maxWeight);
assertEquals(localCacheOne.weigher, localCacheTwo.weigher);
assertEquals(localCacheOne.expireAfterAccessNanos, localCacheTwo.expireAfterAccessNanos);
assertEquals(localCacheOne.expireAfterWriteNanos, localCacheTwo.expireAfterWriteNanos);
assertEquals(localCacheOne.refreshNanos, localCacheTwo.refreshNanos);
assertEquals(localCacheOne.removalListener, localCacheTwo.removalListener);
assertEquals(localCacheOne.ticker, localCacheTwo.ticker);
// serialize the reconstituted version to be sure we haven't lost the ability to reserialize
LocalLoadingCache<Object, Object> three = SerializableTester.reserialize(two);
LocalCache<Object, Object> localCacheThree = three.localCache;
assertEquals(localCacheTwo.defaultLoader, localCacheThree.defaultLoader);
assertEquals(localCacheTwo.keyStrength, localCacheThree.keyStrength);
assertEquals(localCacheTwo.keyStrength, localCacheThree.keyStrength);
assertEquals(localCacheTwo.valueEquivalence, localCacheThree.valueEquivalence);
assertEquals(localCacheTwo.valueEquivalence, localCacheThree.valueEquivalence);
assertEquals(localCacheTwo.maxWeight, localCacheThree.maxWeight);
assertEquals(localCacheTwo.weigher, localCacheThree.weigher);
assertEquals(localCacheTwo.expireAfterAccessNanos, localCacheThree.expireAfterAccessNanos);
assertEquals(localCacheTwo.expireAfterWriteNanos, localCacheThree.expireAfterWriteNanos);
assertEquals(localCacheTwo.removalListener, localCacheThree.removalListener);
assertEquals(localCacheTwo.ticker, localCacheThree.ticker);
}
项目:guava-mock
文件:LocalLoadingCacheTest.java
private static <K, V> LocalLoadingCache<K, V> makeCache(
CacheBuilder<K, V> builder, CacheLoader<? super K, V> loader) {
return new LocalLoadingCache<K, V>(builder, loader);
}
项目:guava-mock
文件:LocalLoadingCacheTest.java
public void testAsMap() {
CacheBuilder<Object, Object> builder = createCacheBuilder();
LocalLoadingCache<Object, Object> cache = makeCache(builder, identityLoader());
assertEquals(EMPTY_STATS, cache.stats());
Object one = new Object();
Object two = new Object();
Object three = new Object();
ConcurrentMap<Object, Object> map = cache.asMap();
assertNull(map.put(one, two));
assertSame(two, map.get(one));
map.putAll(ImmutableMap.of(two, three));
assertSame(three, map.get(two));
assertSame(two, map.putIfAbsent(one, three));
assertSame(two, map.get(one));
assertNull(map.putIfAbsent(three, one));
assertSame(one, map.get(three));
assertSame(two, map.replace(one, three));
assertSame(three, map.get(one));
assertFalse(map.replace(one, two, three));
assertSame(three, map.get(one));
assertTrue(map.replace(one, three, two));
assertSame(two, map.get(one));
assertEquals(3, map.size());
map.clear();
assertTrue(map.isEmpty());
assertEquals(0, map.size());
cache.getUnchecked(one);
assertEquals(1, map.size());
assertSame(one, map.get(one));
assertTrue(map.containsKey(one));
assertTrue(map.containsValue(one));
assertSame(one, map.remove(one));
assertEquals(0, map.size());
cache.getUnchecked(one);
assertEquals(1, map.size());
assertFalse(map.remove(one, two));
assertTrue(map.remove(one, one));
assertEquals(0, map.size());
cache.getUnchecked(one);
Map<Object, Object> newMap = ImmutableMap.of(one, one);
assertEquals(newMap, map);
assertEquals(newMap.entrySet(), map.entrySet());
assertEquals(newMap.keySet(), map.keySet());
Set<Object> expectedValues = ImmutableSet.of(one);
Set<Object> actualValues = ImmutableSet.copyOf(map.values());
assertEquals(expectedValues, actualValues);
}
项目:googles-monorepo-demo
文件:LocalCacheTest.java
public void testSerializationProxyLoading() {
CacheLoader<Object, Object> loader = new SerializableCacheLoader();
RemovalListener<Object, Object> listener = new SerializableRemovalListener<Object, Object>();
SerializableWeigher<Object, Object> weigher = new SerializableWeigher<Object, Object>();
Ticker ticker = new SerializableTicker();
@SuppressWarnings("unchecked") // createMock
LocalLoadingCache<Object, Object> one = (LocalLoadingCache) CacheBuilder.newBuilder()
.weakKeys()
.softValues()
.expireAfterAccess(123, SECONDS)
.expireAfterWrite(456, MINUTES)
.maximumWeight(789)
.weigher(weigher)
.concurrencyLevel(12)
.removalListener(listener)
.ticker(ticker)
.build(loader);
// add a non-serializable entry
one.getUnchecked(new Object());
assertEquals(1, one.size());
assertFalse(one.asMap().isEmpty());
LocalLoadingCache<Object, Object> two = SerializableTester.reserialize(one);
assertEquals(0, two.size());
assertTrue(two.asMap().isEmpty());
LocalCache<Object, Object> localCacheOne = one.localCache;
LocalCache<Object, Object> localCacheTwo = two.localCache;
assertEquals(localCacheOne.keyStrength, localCacheTwo.keyStrength);
assertEquals(localCacheOne.keyStrength, localCacheTwo.keyStrength);
assertEquals(localCacheOne.valueEquivalence, localCacheTwo.valueEquivalence);
assertEquals(localCacheOne.valueEquivalence, localCacheTwo.valueEquivalence);
assertEquals(localCacheOne.maxWeight, localCacheTwo.maxWeight);
assertEquals(localCacheOne.weigher, localCacheTwo.weigher);
assertEquals(localCacheOne.expireAfterAccessNanos, localCacheTwo.expireAfterAccessNanos);
assertEquals(localCacheOne.expireAfterWriteNanos, localCacheTwo.expireAfterWriteNanos);
assertEquals(localCacheOne.refreshNanos, localCacheTwo.refreshNanos);
assertEquals(localCacheOne.removalListener, localCacheTwo.removalListener);
assertEquals(localCacheOne.ticker, localCacheTwo.ticker);
// serialize the reconstituted version to be sure we haven't lost the ability to reserialize
LocalLoadingCache<Object, Object> three = SerializableTester.reserialize(two);
LocalCache<Object, Object> localCacheThree = three.localCache;
assertEquals(localCacheTwo.defaultLoader, localCacheThree.defaultLoader);
assertEquals(localCacheTwo.keyStrength, localCacheThree.keyStrength);
assertEquals(localCacheTwo.keyStrength, localCacheThree.keyStrength);
assertEquals(localCacheTwo.valueEquivalence, localCacheThree.valueEquivalence);
assertEquals(localCacheTwo.valueEquivalence, localCacheThree.valueEquivalence);
assertEquals(localCacheTwo.maxWeight, localCacheThree.maxWeight);
assertEquals(localCacheTwo.weigher, localCacheThree.weigher);
assertEquals(localCacheTwo.expireAfterAccessNanos, localCacheThree.expireAfterAccessNanos);
assertEquals(localCacheTwo.expireAfterWriteNanos, localCacheThree.expireAfterWriteNanos);
assertEquals(localCacheTwo.removalListener, localCacheThree.removalListener);
assertEquals(localCacheTwo.ticker, localCacheThree.ticker);
}
项目:googles-monorepo-demo
文件:LocalLoadingCacheTest.java
private static <K, V> LocalLoadingCache<K, V> makeCache(
CacheBuilder<K, V> builder, CacheLoader<? super K, V> loader) {
return new LocalLoadingCache<K, V>(builder, loader);
}
项目:googles-monorepo-demo
文件:LocalLoadingCacheTest.java
public void testAsMap() {
CacheBuilder<Object, Object> builder = createCacheBuilder();
LocalLoadingCache<Object, Object> cache = makeCache(builder, identityLoader());
assertEquals(EMPTY_STATS, cache.stats());
Object one = new Object();
Object two = new Object();
Object three = new Object();
ConcurrentMap<Object, Object> map = cache.asMap();
assertNull(map.put(one, two));
assertSame(two, map.get(one));
map.putAll(ImmutableMap.of(two, three));
assertSame(three, map.get(two));
assertSame(two, map.putIfAbsent(one, three));
assertSame(two, map.get(one));
assertNull(map.putIfAbsent(three, one));
assertSame(one, map.get(three));
assertSame(two, map.replace(one, three));
assertSame(three, map.get(one));
assertFalse(map.replace(one, two, three));
assertSame(three, map.get(one));
assertTrue(map.replace(one, three, two));
assertSame(two, map.get(one));
assertEquals(3, map.size());
map.clear();
assertTrue(map.isEmpty());
assertEquals(0, map.size());
cache.getUnchecked(one);
assertEquals(1, map.size());
assertSame(one, map.get(one));
assertTrue(map.containsKey(one));
assertTrue(map.containsValue(one));
assertSame(one, map.remove(one));
assertEquals(0, map.size());
cache.getUnchecked(one);
assertEquals(1, map.size());
assertFalse(map.remove(one, two));
assertTrue(map.remove(one, one));
assertEquals(0, map.size());
cache.getUnchecked(one);
Map<Object, Object> newMap = ImmutableMap.of(one, one);
assertEquals(newMap, map);
assertEquals(newMap.entrySet(), map.entrySet());
assertEquals(newMap.keySet(), map.keySet());
Set<Object> expectedValues = ImmutableSet.of(one);
Set<Object> actualValues = ImmutableSet.copyOf(map.values());
assertEquals(expectedValues, actualValues);
}
项目:guava-libraries
文件:LocalCacheTest.java
public void testSerializationProxyLoading() {
CacheLoader<Object, Object> loader = new SerializableCacheLoader();
RemovalListener<Object, Object> listener = new SerializableRemovalListener<Object, Object>();
SerializableWeigher<Object, Object> weigher = new SerializableWeigher<Object, Object>();
Ticker ticker = new SerializableTicker();
@SuppressWarnings("unchecked") // createMock
LocalLoadingCache<Object, Object> one = (LocalLoadingCache) CacheBuilder.newBuilder()
.weakKeys()
.softValues()
.expireAfterAccess(123, SECONDS)
.expireAfterWrite(456, MINUTES)
.maximumWeight(789)
.weigher(weigher)
.concurrencyLevel(12)
.removalListener(listener)
.ticker(ticker)
.build(loader);
// add a non-serializable entry
one.getUnchecked(new Object());
assertEquals(1, one.size());
assertFalse(one.asMap().isEmpty());
LocalLoadingCache<Object, Object> two = SerializableTester.reserialize(one);
assertEquals(0, two.size());
assertTrue(two.asMap().isEmpty());
LocalCache<Object, Object> localCacheOne = one.localCache;
LocalCache<Object, Object> localCacheTwo = two.localCache;
assertEquals(localCacheOne.keyStrength, localCacheTwo.keyStrength);
assertEquals(localCacheOne.keyStrength, localCacheTwo.keyStrength);
assertEquals(localCacheOne.valueEquivalence, localCacheTwo.valueEquivalence);
assertEquals(localCacheOne.valueEquivalence, localCacheTwo.valueEquivalence);
assertEquals(localCacheOne.maxWeight, localCacheTwo.maxWeight);
assertEquals(localCacheOne.weigher, localCacheTwo.weigher);
assertEquals(localCacheOne.expireAfterAccessNanos, localCacheTwo.expireAfterAccessNanos);
assertEquals(localCacheOne.expireAfterWriteNanos, localCacheTwo.expireAfterWriteNanos);
assertEquals(localCacheOne.refreshNanos, localCacheTwo.refreshNanos);
assertEquals(localCacheOne.removalListener, localCacheTwo.removalListener);
assertEquals(localCacheOne.ticker, localCacheTwo.ticker);
// serialize the reconstituted version to be sure we haven't lost the ability to reserialize
LocalLoadingCache<Object, Object> three = SerializableTester.reserialize(two);
LocalCache<Object, Object> localCacheThree = three.localCache;
assertEquals(localCacheTwo.defaultLoader, localCacheThree.defaultLoader);
assertEquals(localCacheTwo.keyStrength, localCacheThree.keyStrength);
assertEquals(localCacheTwo.keyStrength, localCacheThree.keyStrength);
assertEquals(localCacheTwo.valueEquivalence, localCacheThree.valueEquivalence);
assertEquals(localCacheTwo.valueEquivalence, localCacheThree.valueEquivalence);
assertEquals(localCacheTwo.maxWeight, localCacheThree.maxWeight);
assertEquals(localCacheTwo.weigher, localCacheThree.weigher);
assertEquals(localCacheTwo.expireAfterAccessNanos, localCacheThree.expireAfterAccessNanos);
assertEquals(localCacheTwo.expireAfterWriteNanos, localCacheThree.expireAfterWriteNanos);
assertEquals(localCacheTwo.removalListener, localCacheThree.removalListener);
assertEquals(localCacheTwo.ticker, localCacheThree.ticker);
}
项目:guava-libraries
文件:LocalLoadingCacheTest.java
private static <K, V> LocalLoadingCache<K, V> makeCache(
CacheBuilder<K, V> builder, CacheLoader<? super K, V> loader) {
return new LocalLoadingCache<K, V>(builder, loader);
}
项目:guava-libraries
文件:LocalLoadingCacheTest.java
public void testAsMap() {
CacheBuilder<Object, Object> builder = createCacheBuilder();
LocalLoadingCache<Object, Object> cache = makeCache(builder, identityLoader());
assertEquals(EMPTY_STATS, cache.stats());
Object one = new Object();
Object two = new Object();
Object three = new Object();
ConcurrentMap<Object, Object> map = cache.asMap();
assertNull(map.put(one, two));
assertSame(two, map.get(one));
map.putAll(ImmutableMap.of(two, three));
assertSame(three, map.get(two));
assertSame(two, map.putIfAbsent(one, three));
assertSame(two, map.get(one));
assertNull(map.putIfAbsent(three, one));
assertSame(one, map.get(three));
assertSame(two, map.replace(one, three));
assertSame(three, map.get(one));
assertFalse(map.replace(one, two, three));
assertSame(three, map.get(one));
assertTrue(map.replace(one, three, two));
assertSame(two, map.get(one));
assertEquals(3, map.size());
map.clear();
assertTrue(map.isEmpty());
assertEquals(0, map.size());
cache.getUnchecked(one);
assertEquals(1, map.size());
assertSame(one, map.get(one));
assertTrue(map.containsKey(one));
assertTrue(map.containsValue(one));
assertSame(one, map.remove(one));
assertEquals(0, map.size());
cache.getUnchecked(one);
assertEquals(1, map.size());
assertFalse(map.remove(one, two));
assertTrue(map.remove(one, one));
assertEquals(0, map.size());
cache.getUnchecked(one);
Map<Object, Object> newMap = ImmutableMap.of(one, one);
assertEquals(newMap, map);
assertEquals(newMap.entrySet(), map.entrySet());
assertEquals(newMap.keySet(), map.keySet());
Set<Object> expectedValues = ImmutableSet.of(one);
Set<Object> actualValues = ImmutableSet.copyOf(map.values());
assertEquals(expectedValues, actualValues);
}
项目:guava
文件:LocalCacheTest.java
public void testSerializationProxyLoading() {
CacheLoader<Object, Object> loader = new SerializableCacheLoader();
RemovalListener<Object, Object> listener = new SerializableRemovalListener<>();
SerializableWeigher<Object, Object> weigher = new SerializableWeigher<>();
Ticker ticker = new SerializableTicker();
@SuppressWarnings("unchecked") // createMock
LocalLoadingCache<Object, Object> one =
(LocalLoadingCache)
CacheBuilder.newBuilder()
.weakKeys()
.softValues()
.expireAfterAccess(123, SECONDS)
.expireAfterWrite(456, MINUTES)
.maximumWeight(789)
.weigher(weigher)
.concurrencyLevel(12)
.removalListener(listener)
.ticker(ticker)
.build(loader);
// add a non-serializable entry
one.getUnchecked(new Object());
assertEquals(1, one.size());
assertFalse(one.asMap().isEmpty());
LocalLoadingCache<Object, Object> two = SerializableTester.reserialize(one);
assertEquals(0, two.size());
assertTrue(two.asMap().isEmpty());
LocalCache<Object, Object> localCacheOne = one.localCache;
LocalCache<Object, Object> localCacheTwo = two.localCache;
assertEquals(localCacheOne.keyStrength, localCacheTwo.keyStrength);
assertEquals(localCacheOne.keyStrength, localCacheTwo.keyStrength);
assertEquals(localCacheOne.valueEquivalence, localCacheTwo.valueEquivalence);
assertEquals(localCacheOne.valueEquivalence, localCacheTwo.valueEquivalence);
assertEquals(localCacheOne.maxWeight, localCacheTwo.maxWeight);
assertEquals(localCacheOne.weigher, localCacheTwo.weigher);
assertEquals(localCacheOne.expireAfterAccessNanos, localCacheTwo.expireAfterAccessNanos);
assertEquals(localCacheOne.expireAfterWriteNanos, localCacheTwo.expireAfterWriteNanos);
assertEquals(localCacheOne.refreshNanos, localCacheTwo.refreshNanos);
assertEquals(localCacheOne.removalListener, localCacheTwo.removalListener);
assertEquals(localCacheOne.ticker, localCacheTwo.ticker);
// serialize the reconstituted version to be sure we haven't lost the ability to reserialize
LocalLoadingCache<Object, Object> three = SerializableTester.reserialize(two);
LocalCache<Object, Object> localCacheThree = three.localCache;
assertEquals(localCacheTwo.defaultLoader, localCacheThree.defaultLoader);
assertEquals(localCacheTwo.keyStrength, localCacheThree.keyStrength);
assertEquals(localCacheTwo.keyStrength, localCacheThree.keyStrength);
assertEquals(localCacheTwo.valueEquivalence, localCacheThree.valueEquivalence);
assertEquals(localCacheTwo.valueEquivalence, localCacheThree.valueEquivalence);
assertEquals(localCacheTwo.maxWeight, localCacheThree.maxWeight);
assertEquals(localCacheTwo.weigher, localCacheThree.weigher);
assertEquals(localCacheTwo.expireAfterAccessNanos, localCacheThree.expireAfterAccessNanos);
assertEquals(localCacheTwo.expireAfterWriteNanos, localCacheThree.expireAfterWriteNanos);
assertEquals(localCacheTwo.removalListener, localCacheThree.removalListener);
assertEquals(localCacheTwo.ticker, localCacheThree.ticker);
}
项目:guava
文件:LocalLoadingCacheTest.java
private static <K, V> LocalLoadingCache<K, V> makeCache(
CacheBuilder<K, V> builder, CacheLoader<? super K, V> loader) {
return new LocalLoadingCache<>(builder, loader);
}