Java 类com.google.common.cache.TestingCacheLoaders.IdentityLoader 实例源码

项目:guava-mock    文件:CacheEvictionTest.java   
public void testEviction_maxSize() {
  CountingRemovalListener<Integer, Integer> removalListener = countingRemovalListener();
  IdentityLoader<Integer> loader = identityLoader();
  LoadingCache<Integer, Integer> cache = CacheBuilder.newBuilder()
      .maximumSize(MAX_SIZE)
      .removalListener(removalListener)
      .build(loader);
  for (int i = 0; i < 2 * MAX_SIZE; i++) {
    cache.getUnchecked(i);
    assertTrue(cache.size() <= MAX_SIZE);
  }

  assertEquals(MAX_SIZE, CacheTesting.accessQueueSize(cache));
  assertEquals(MAX_SIZE, cache.size());
  CacheTesting.processPendingNotifications(cache);
  assertEquals(MAX_SIZE, removalListener.getCount());
  CacheTesting.checkValidState(cache);
}
项目:guava-mock    文件:CacheEvictionTest.java   
public void testEviction_maxWeight() {
  CountingRemovalListener<Integer, Integer> removalListener = countingRemovalListener();
  IdentityLoader<Integer> loader = identityLoader();
  LoadingCache<Integer, Integer> cache = CacheBuilder.newBuilder()
      .maximumWeight(2 * MAX_SIZE)
      .weigher(constantWeigher(2))
      .removalListener(removalListener)
      .build(loader);
  for (int i = 0; i < 2 * MAX_SIZE; i++) {
    cache.getUnchecked(i);
    assertTrue(cache.size() <= MAX_SIZE);
  }

  assertEquals(MAX_SIZE, CacheTesting.accessQueueSize(cache));
  assertEquals(MAX_SIZE, cache.size());
  CacheTesting.processPendingNotifications(cache);
  assertEquals(MAX_SIZE, removalListener.getCount());
  CacheTesting.checkValidState(cache);
}
项目:guava-mock    文件:CacheEvictionTest.java   
public void testEviction_overweight() {
  // test weighted lru within a single segment
  IdentityLoader<Integer> loader = identityLoader();
  LoadingCache<Integer, Integer> cache = CacheBuilder.newBuilder()
      .concurrencyLevel(1)
      .maximumWeight(45)
      .weigher(intKeyWeigher())
      .build(loader);
  CacheTesting.warmUp(cache, 0, 10);
  Set<Integer> keySet = cache.asMap().keySet();
  assertThat(keySet).containsExactly(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);

  // add an at-the-maximum-weight entry
  getAll(cache, asList(45));
  CacheTesting.drainRecencyQueues(cache);
  assertThat(keySet).containsExactly(0, 45);

  // add an over-the-maximum-weight entry
  getAll(cache, asList(46));
  CacheTesting.drainRecencyQueues(cache);
  assertThat(keySet).contains(0);
}
项目:guava-mock    文件:CacheEvictionTest.java   
public void testEviction_invalidateAll() {
  // test that .invalidateAll() resets total weight state correctly
  IdentityLoader<Integer> loader = identityLoader();
  LoadingCache<Integer, Integer> cache = CacheBuilder.newBuilder()
      .concurrencyLevel(1)
      .maximumSize(10)
      .build(loader);

  Set<Integer> keySet = cache.asMap().keySet();
  assertThat(keySet).isEmpty();

  // add 0, 1, 2, 3, 4
  getAll(cache, asList(0, 1, 2, 3, 4));
  CacheTesting.drainRecencyQueues(cache);
  assertThat(keySet).containsExactly(0, 1, 2, 3, 4);

  // invalidate all
  cache.invalidateAll();
  CacheTesting.drainRecencyQueues(cache);
  assertThat(keySet).isEmpty();

  // add 5, 6, 7, 8, 9, 10, 11, 12
  getAll(cache, asList(5, 6, 7, 8, 9, 10, 11, 12));
  CacheTesting.drainRecencyQueues(cache);
  assertThat(keySet).containsExactly(5, 6, 7, 8, 9, 10, 11, 12);
}
项目:googles-monorepo-demo    文件:CacheEvictionTest.java   
public void testEviction_maxSize() {
  CountingRemovalListener<Integer, Integer> removalListener = countingRemovalListener();
  IdentityLoader<Integer> loader = identityLoader();
  LoadingCache<Integer, Integer> cache = CacheBuilder.newBuilder()
      .maximumSize(MAX_SIZE)
      .removalListener(removalListener)
      .build(loader);
  for (int i = 0; i < 2 * MAX_SIZE; i++) {
    cache.getUnchecked(i);
    assertTrue(cache.size() <= MAX_SIZE);
  }

  assertEquals(MAX_SIZE, CacheTesting.accessQueueSize(cache));
  assertEquals(MAX_SIZE, cache.size());
  CacheTesting.processPendingNotifications(cache);
  assertEquals(MAX_SIZE, removalListener.getCount());
  CacheTesting.checkValidState(cache);
}
项目:googles-monorepo-demo    文件:CacheEvictionTest.java   
public void testEviction_maxWeight() {
  CountingRemovalListener<Integer, Integer> removalListener = countingRemovalListener();
  IdentityLoader<Integer> loader = identityLoader();
  LoadingCache<Integer, Integer> cache = CacheBuilder.newBuilder()
      .maximumWeight(2 * MAX_SIZE)
      .weigher(constantWeigher(2))
      .removalListener(removalListener)
      .build(loader);
  for (int i = 0; i < 2 * MAX_SIZE; i++) {
    cache.getUnchecked(i);
    assertTrue(cache.size() <= MAX_SIZE);
  }

  assertEquals(MAX_SIZE, CacheTesting.accessQueueSize(cache));
  assertEquals(MAX_SIZE, cache.size());
  CacheTesting.processPendingNotifications(cache);
  assertEquals(MAX_SIZE, removalListener.getCount());
  CacheTesting.checkValidState(cache);
}
项目:googles-monorepo-demo    文件:CacheEvictionTest.java   
public void testEviction_overweight() {
  // test weighted lru within a single segment
  IdentityLoader<Integer> loader = identityLoader();
  LoadingCache<Integer, Integer> cache = CacheBuilder.newBuilder()
      .concurrencyLevel(1)
      .maximumWeight(45)
      .weigher(intKeyWeigher())
      .build(loader);
  CacheTesting.warmUp(cache, 0, 10);
  Set<Integer> keySet = cache.asMap().keySet();
  assertThat(keySet).containsExactly(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);

  // add an at-the-maximum-weight entry
  getAll(cache, asList(45));
  CacheTesting.drainRecencyQueues(cache);
  assertThat(keySet).containsExactly(0, 45);

  // add an over-the-maximum-weight entry
  getAll(cache, asList(46));
  CacheTesting.drainRecencyQueues(cache);
  assertThat(keySet).contains(0);
}
项目:googles-monorepo-demo    文件:CacheEvictionTest.java   
public void testEviction_invalidateAll() {
  // test that .invalidateAll() resets total weight state correctly
  IdentityLoader<Integer> loader = identityLoader();
  LoadingCache<Integer, Integer> cache = CacheBuilder.newBuilder()
      .concurrencyLevel(1)
      .maximumSize(10)
      .build(loader);

  Set<Integer> keySet = cache.asMap().keySet();
  assertThat(keySet).isEmpty();

  // add 0, 1, 2, 3, 4
  getAll(cache, asList(0, 1, 2, 3, 4));
  CacheTesting.drainRecencyQueues(cache);
  assertThat(keySet).containsExactly(0, 1, 2, 3, 4);

  // invalidate all
  cache.invalidateAll();
  CacheTesting.drainRecencyQueues(cache);
  assertThat(keySet).isEmpty();

  // add 5, 6, 7, 8, 9, 10, 11, 12
  getAll(cache, asList(5, 6, 7, 8, 9, 10, 11, 12));
  CacheTesting.drainRecencyQueues(cache);
  assertThat(keySet).containsExactly(5, 6, 7, 8, 9, 10, 11, 12);
}
项目:guava-libraries    文件:CacheEvictionTest.java   
public void testEviction_maxSize() {
  CountingRemovalListener<Integer, Integer> removalListener = countingRemovalListener();
  IdentityLoader<Integer> loader = identityLoader();
  LoadingCache<Integer, Integer> cache = CacheBuilder.newBuilder()
      .maximumSize(MAX_SIZE)
      .removalListener(removalListener)
      .build(loader);
  for (int i = 0; i < 2 * MAX_SIZE; i++) {
    cache.getUnchecked(i);
    assertTrue(cache.size() <= MAX_SIZE);
  }

  assertEquals(MAX_SIZE, CacheTesting.accessQueueSize(cache));
  assertEquals(MAX_SIZE, cache.size());
  CacheTesting.processPendingNotifications(cache);
  assertEquals(MAX_SIZE, removalListener.getCount());
  CacheTesting.checkValidState(cache);
}
项目:guava-libraries    文件:CacheEvictionTest.java   
public void testEviction_maxWeight() {
  CountingRemovalListener<Integer, Integer> removalListener = countingRemovalListener();
  IdentityLoader<Integer> loader = identityLoader();
  LoadingCache<Integer, Integer> cache = CacheBuilder.newBuilder()
      .maximumWeight(2 * MAX_SIZE)
      .weigher(constantWeigher(2))
      .removalListener(removalListener)
      .build(loader);
  for (int i = 0; i < 2 * MAX_SIZE; i++) {
    cache.getUnchecked(i);
    assertTrue(cache.size() <= MAX_SIZE);
  }

  assertEquals(MAX_SIZE, CacheTesting.accessQueueSize(cache));
  assertEquals(MAX_SIZE, cache.size());
  CacheTesting.processPendingNotifications(cache);
  assertEquals(MAX_SIZE, removalListener.getCount());
  CacheTesting.checkValidState(cache);
}
项目:guava-libraries    文件:CacheEvictionTest.java   
public void testEviction_overweight() {
  // test weighted lru within a single segment
  IdentityLoader<Integer> loader = identityLoader();
  LoadingCache<Integer, Integer> cache = CacheBuilder.newBuilder()
      .concurrencyLevel(1)
      .maximumWeight(45)
      .weigher(intKeyWeigher())
      .build(loader);
  CacheTesting.warmUp(cache, 0, 10);
  Set<Integer> keySet = cache.asMap().keySet();
  assertThat(keySet).containsExactly(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);

  // add an at-the-maximum-weight entry
  getAll(cache, asList(45));
  CacheTesting.drainRecencyQueues(cache);
  assertThat(keySet).containsExactly(0, 45);

  // add an over-the-maximum-weight entry
  getAll(cache, asList(46));
  CacheTesting.drainRecencyQueues(cache);
  assertThat(keySet).contains(0);
}
项目:guava-libraries    文件:CacheEvictionTest.java   
public void testEviction_invalidateAll() {
  // test that .invalidateAll() resets total weight state correctly
  IdentityLoader<Integer> loader = identityLoader();
  LoadingCache<Integer, Integer> cache = CacheBuilder.newBuilder()
      .concurrencyLevel(1)
      .maximumSize(10)
      .build(loader);

  Set<Integer> keySet = cache.asMap().keySet();
  assertThat(keySet).isEmpty();

  // add 0, 1, 2, 3, 4
  getAll(cache, asList(0, 1, 2, 3, 4));
  CacheTesting.drainRecencyQueues(cache);
  assertThat(keySet).containsExactly(0, 1, 2, 3, 4);

  // invalidate all
  cache.invalidateAll();
  CacheTesting.drainRecencyQueues(cache);
  assertThat(keySet).isEmpty();

  // add 5, 6, 7, 8, 9, 10, 11, 12
  getAll(cache, asList(5, 6, 7, 8, 9, 10, 11, 12));
  CacheTesting.drainRecencyQueues(cache);
  assertThat(keySet).containsExactly(5, 6, 7, 8, 9, 10, 11, 12);
}
项目:guava    文件:CacheEvictionTest.java   
public void testEviction_maxWeightOneSegment() {
  IdentityLoader<Integer> loader = identityLoader();
  LoadingCache<Integer, Integer> cache =
      CacheBuilder.newBuilder()
          .concurrencyLevel(1)
          .maximumWeight(2 * MAX_SIZE)
          .weigher(constantWeigher(2))
          .build(loader);
  for (int i = 0; i < 2 * MAX_SIZE; i++) {
    cache.getUnchecked(i);
    assertEquals(Math.min(i + 1, MAX_SIZE), cache.size());
  }

  assertEquals(MAX_SIZE, cache.size());
  CacheTesting.checkValidState(cache);
}
项目:guava    文件:CacheEvictionTest.java   
public void testEviction_maxSize() {
  CountingRemovalListener<Integer, Integer> removalListener = countingRemovalListener();
  IdentityLoader<Integer> loader = identityLoader();
  LoadingCache<Integer, Integer> cache =
      CacheBuilder.newBuilder()
          .maximumSize(MAX_SIZE)
          .removalListener(removalListener)
          .build(loader);
  for (int i = 0; i < 2 * MAX_SIZE; i++) {
    cache.getUnchecked(i);
    assertTrue(cache.size() <= MAX_SIZE);
  }

  assertEquals(MAX_SIZE, CacheTesting.accessQueueSize(cache));
  assertEquals(MAX_SIZE, cache.size());
  CacheTesting.processPendingNotifications(cache);
  assertEquals(MAX_SIZE, removalListener.getCount());
  CacheTesting.checkValidState(cache);
}
项目:guava    文件:CacheEvictionTest.java   
public void testEviction_maxWeight() {
  CountingRemovalListener<Integer, Integer> removalListener = countingRemovalListener();
  IdentityLoader<Integer> loader = identityLoader();
  LoadingCache<Integer, Integer> cache =
      CacheBuilder.newBuilder()
          .maximumWeight(2 * MAX_SIZE)
          .weigher(constantWeigher(2))
          .removalListener(removalListener)
          .build(loader);
  for (int i = 0; i < 2 * MAX_SIZE; i++) {
    cache.getUnchecked(i);
    assertTrue(cache.size() <= MAX_SIZE);
  }

  assertEquals(MAX_SIZE, CacheTesting.accessQueueSize(cache));
  assertEquals(MAX_SIZE, cache.size());
  CacheTesting.processPendingNotifications(cache);
  assertEquals(MAX_SIZE, removalListener.getCount());
  CacheTesting.checkValidState(cache);
}
项目:guava    文件:CacheEvictionTest.java   
public void testEviction_overweight() {
  // test weighted lru within a single segment
  IdentityLoader<Integer> loader = identityLoader();
  LoadingCache<Integer, Integer> cache =
      CacheBuilder.newBuilder()
          .concurrencyLevel(1)
          .maximumWeight(45)
          .weigher(intKeyWeigher())
          .build(loader);
  CacheTesting.warmUp(cache, 0, 10);
  Set<Integer> keySet = cache.asMap().keySet();
  assertThat(keySet).containsExactly(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);

  // add an at-the-maximum-weight entry
  getAll(cache, asList(45));
  CacheTesting.drainRecencyQueues(cache);
  assertThat(keySet).containsExactly(0, 45);

  // add an over-the-maximum-weight entry
  getAll(cache, asList(46));
  CacheTesting.drainRecencyQueues(cache);
  assertThat(keySet).contains(0);
}
项目:guava    文件:CacheEvictionTest.java   
public void testEviction_invalidateAll() {
  // test that .invalidateAll() resets total weight state correctly
  IdentityLoader<Integer> loader = identityLoader();
  LoadingCache<Integer, Integer> cache =
      CacheBuilder.newBuilder().concurrencyLevel(1).maximumSize(10).build(loader);

  Set<Integer> keySet = cache.asMap().keySet();
  assertThat(keySet).isEmpty();

  // add 0, 1, 2, 3, 4
  getAll(cache, asList(0, 1, 2, 3, 4));
  CacheTesting.drainRecencyQueues(cache);
  assertThat(keySet).containsExactly(0, 1, 2, 3, 4);

  // invalidate all
  cache.invalidateAll();
  CacheTesting.drainRecencyQueues(cache);
  assertThat(keySet).isEmpty();

  // add 5, 6, 7, 8, 9, 10, 11, 12
  getAll(cache, asList(5, 6, 7, 8, 9, 10, 11, 12));
  CacheTesting.drainRecencyQueues(cache);
  assertThat(keySet).containsExactly(5, 6, 7, 8, 9, 10, 11, 12);
}
项目:guava    文件:CacheEvictionTest.java   
public void testEviction_maxWeightOneSegment() {
  IdentityLoader<Integer> loader = identityLoader();
  LoadingCache<Integer, Integer> cache =
      CacheBuilder.newBuilder()
          .concurrencyLevel(1)
          .maximumWeight(2 * MAX_SIZE)
          .weigher(constantWeigher(2))
          .build(loader);
  for (int i = 0; i < 2 * MAX_SIZE; i++) {
    cache.getUnchecked(i);
    assertEquals(Math.min(i + 1, MAX_SIZE), cache.size());
  }

  assertEquals(MAX_SIZE, cache.size());
  CacheTesting.checkValidState(cache);
}
项目:guava    文件:CacheEvictionTest.java   
public void testEviction_maxSize() {
  CountingRemovalListener<Integer, Integer> removalListener = countingRemovalListener();
  IdentityLoader<Integer> loader = identityLoader();
  LoadingCache<Integer, Integer> cache =
      CacheBuilder.newBuilder()
          .maximumSize(MAX_SIZE)
          .removalListener(removalListener)
          .build(loader);
  for (int i = 0; i < 2 * MAX_SIZE; i++) {
    cache.getUnchecked(i);
    assertTrue(cache.size() <= MAX_SIZE);
  }

  assertEquals(MAX_SIZE, CacheTesting.accessQueueSize(cache));
  assertEquals(MAX_SIZE, cache.size());
  CacheTesting.processPendingNotifications(cache);
  assertEquals(MAX_SIZE, removalListener.getCount());
  CacheTesting.checkValidState(cache);
}
项目:guava    文件:CacheEvictionTest.java   
public void testEviction_maxWeight() {
  CountingRemovalListener<Integer, Integer> removalListener = countingRemovalListener();
  IdentityLoader<Integer> loader = identityLoader();
  LoadingCache<Integer, Integer> cache =
      CacheBuilder.newBuilder()
          .maximumWeight(2 * MAX_SIZE)
          .weigher(constantWeigher(2))
          .removalListener(removalListener)
          .build(loader);
  for (int i = 0; i < 2 * MAX_SIZE; i++) {
    cache.getUnchecked(i);
    assertTrue(cache.size() <= MAX_SIZE);
  }

  assertEquals(MAX_SIZE, CacheTesting.accessQueueSize(cache));
  assertEquals(MAX_SIZE, cache.size());
  CacheTesting.processPendingNotifications(cache);
  assertEquals(MAX_SIZE, removalListener.getCount());
  CacheTesting.checkValidState(cache);
}
项目:guava    文件:CacheEvictionTest.java   
public void testEviction_overweight() {
  // test weighted lru within a single segment
  IdentityLoader<Integer> loader = identityLoader();
  LoadingCache<Integer, Integer> cache =
      CacheBuilder.newBuilder()
          .concurrencyLevel(1)
          .maximumWeight(45)
          .weigher(intKeyWeigher())
          .build(loader);
  CacheTesting.warmUp(cache, 0, 10);
  Set<Integer> keySet = cache.asMap().keySet();
  assertThat(keySet).containsExactly(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);

  // add an at-the-maximum-weight entry
  getAll(cache, asList(45));
  CacheTesting.drainRecencyQueues(cache);
  assertThat(keySet).containsExactly(0, 45);

  // add an over-the-maximum-weight entry
  getAll(cache, asList(46));
  CacheTesting.drainRecencyQueues(cache);
  assertThat(keySet).contains(0);
}
项目:guava    文件:CacheEvictionTest.java   
public void testEviction_invalidateAll() {
  // test that .invalidateAll() resets total weight state correctly
  IdentityLoader<Integer> loader = identityLoader();
  LoadingCache<Integer, Integer> cache =
      CacheBuilder.newBuilder().concurrencyLevel(1).maximumSize(10).build(loader);

  Set<Integer> keySet = cache.asMap().keySet();
  assertThat(keySet).isEmpty();

  // add 0, 1, 2, 3, 4
  getAll(cache, asList(0, 1, 2, 3, 4));
  CacheTesting.drainRecencyQueues(cache);
  assertThat(keySet).containsExactly(0, 1, 2, 3, 4);

  // invalidate all
  cache.invalidateAll();
  CacheTesting.drainRecencyQueues(cache);
  assertThat(keySet).isEmpty();

  // add 5, 6, 7, 8, 9, 10, 11, 12
  getAll(cache, asList(5, 6, 7, 8, 9, 10, 11, 12));
  CacheTesting.drainRecencyQueues(cache);
  assertThat(keySet).containsExactly(5, 6, 7, 8, 9, 10, 11, 12);
}
项目:guava-mock    文件:CacheEvictionTest.java   
public void testEviction_setMaxSegmentSize() {
  IdentityLoader<Object> loader = identityLoader();
  for (int i = 1; i < 1000; i++) {
    LoadingCache<Object, Object> cache = CacheBuilder.newBuilder()
        .maximumSize(i)
        .build(loader);
    assertEquals(i, CacheTesting.getTotalSegmentSize(cache));
  }
}
项目:guava-mock    文件:CacheEvictionTest.java   
public void testEviction_setMaxSegmentWeight() {
  IdentityLoader<Object> loader = identityLoader();
  for (int i = 1; i < 1000; i++) {
    LoadingCache<Object, Object> cache = CacheBuilder.newBuilder()
        .maximumWeight(i)
        .weigher(constantWeigher(1))
        .build(loader);
    assertEquals(i, CacheTesting.getTotalSegmentSize(cache));
  }
}
项目:guava-mock    文件:CacheEvictionTest.java   
public void testEviction_maxSizeOneSegment() {
  IdentityLoader<Integer> loader = identityLoader();
  LoadingCache<Integer, Integer> cache = CacheBuilder.newBuilder()
      .concurrencyLevel(1)
      .maximumSize(MAX_SIZE)
      .build(loader);
  for (int i = 0; i < 2 * MAX_SIZE; i++) {
    cache.getUnchecked(i);
    assertEquals(Math.min(i + 1, MAX_SIZE), cache.size());
  }

  assertEquals(MAX_SIZE, cache.size());
  CacheTesting.checkValidState(cache);
}
项目:guava-mock    文件:CacheEvictionTest.java   
public void testEviction_maxWeightOneSegment() {
  IdentityLoader<Integer> loader = identityLoader();
  LoadingCache<Integer, Integer> cache = CacheBuilder.newBuilder()
      .concurrencyLevel(1)
      .maximumWeight(2 * MAX_SIZE)
      .weigher(constantWeigher(2))
      .build(loader);
  for (int i = 0; i < 2 * MAX_SIZE; i++) {
    cache.getUnchecked(i);
    assertEquals(Math.min(i + 1, MAX_SIZE), cache.size());
  }

  assertEquals(MAX_SIZE, cache.size());
  CacheTesting.checkValidState(cache);
}
项目:guava-mock    文件:CacheEvictionTest.java   
public void testEviction_overflow() {
  CountingRemovalListener<Object, Object> removalListener = countingRemovalListener();
  IdentityLoader<Object> loader = identityLoader();
  LoadingCache<Object, Object> cache = CacheBuilder.newBuilder()
      .concurrencyLevel(1)
      .maximumWeight(1L << 31)
      .weigher(constantWeigher(Integer.MAX_VALUE))
      .removalListener(removalListener)
      .build(loader);
  cache.getUnchecked(objectWithHash(0));
  cache.getUnchecked(objectWithHash(0));
  CacheTesting.processPendingNotifications(cache);
  assertEquals(1, removalListener.getCount());
}
项目:guava-mock    文件:CacheEvictionTest.java   
public void testUpdateRecency_onGet() {
  IdentityLoader<Integer> loader = identityLoader();
  final LoadingCache<Integer, Integer> cache =
      CacheBuilder.newBuilder().maximumSize(MAX_SIZE).build(loader);
  CacheTesting.checkRecency(cache, MAX_SIZE,
      new Receiver<ReferenceEntry<Integer, Integer>>() {
        @Override
        public void accept(ReferenceEntry<Integer, Integer> entry) {
          cache.getUnchecked(entry.getKey());
        }
      });
}
项目:guava-mock    文件:CacheEvictionTest.java   
public void testUpdateRecency_onInvalidate() {
  IdentityLoader<Integer> loader = identityLoader();
  final LoadingCache<Integer, Integer> cache = CacheBuilder.newBuilder()
      .maximumSize(MAX_SIZE)
      .concurrencyLevel(1)
      .build(loader);
  CacheTesting.checkRecency(cache, MAX_SIZE,
      new Receiver<ReferenceEntry<Integer, Integer>>() {
        @Override
        public void accept(ReferenceEntry<Integer, Integer> entry) {
          Integer key = entry.getKey();
          cache.invalidate(key);
        }
      });
}
项目:guava-mock    文件:CacheEvictionTest.java   
public void testEviction_lru() {
  // test lru within a single segment
  IdentityLoader<Integer> loader = identityLoader();
  LoadingCache<Integer, Integer> cache = CacheBuilder.newBuilder()
      .concurrencyLevel(1)
      .maximumSize(10)
      .build(loader);
  CacheTesting.warmUp(cache, 0, 10);
  Set<Integer> keySet = cache.asMap().keySet();
  assertThat(keySet).containsExactly(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);

  // re-order
  getAll(cache, asList(0, 1, 2));
  CacheTesting.drainRecencyQueues(cache);
  assertThat(keySet).containsExactly(3, 4, 5, 6, 7, 8, 9, 0, 1, 2);

  // evict 3, 4, 5
  getAll(cache, asList(10, 11, 12));
  CacheTesting.drainRecencyQueues(cache);
  assertThat(keySet).containsExactly(6, 7, 8, 9, 0, 1, 2, 10, 11, 12);

  // re-order
  getAll(cache, asList(6, 7, 8));
  CacheTesting.drainRecencyQueues(cache);
  assertThat(keySet).containsExactly(9, 0, 1, 2, 10, 11, 12, 6, 7, 8);

  // evict 9, 0, 1
  getAll(cache, asList(13, 14, 15));
  CacheTesting.drainRecencyQueues(cache);
  assertThat(keySet).containsExactly(2, 10, 11, 12, 6, 7, 8, 13, 14, 15);
}
项目:googles-monorepo-demo    文件:CacheEvictionTest.java   
public void testEviction_setMaxSegmentSize() {
  IdentityLoader<Object> loader = identityLoader();
  for (int i = 1; i < 1000; i++) {
    LoadingCache<Object, Object> cache = CacheBuilder.newBuilder()
        .maximumSize(i)
        .build(loader);
    assertEquals(i, CacheTesting.getTotalSegmentSize(cache));
  }
}
项目:googles-monorepo-demo    文件:CacheEvictionTest.java   
public void testEviction_setMaxSegmentWeight() {
  IdentityLoader<Object> loader = identityLoader();
  for (int i = 1; i < 1000; i++) {
    LoadingCache<Object, Object> cache = CacheBuilder.newBuilder()
        .maximumWeight(i)
        .weigher(constantWeigher(1))
        .build(loader);
    assertEquals(i, CacheTesting.getTotalSegmentSize(cache));
  }
}
项目:googles-monorepo-demo    文件:CacheEvictionTest.java   
public void testEviction_maxSizeOneSegment() {
  IdentityLoader<Integer> loader = identityLoader();
  LoadingCache<Integer, Integer> cache = CacheBuilder.newBuilder()
      .concurrencyLevel(1)
      .maximumSize(MAX_SIZE)
      .build(loader);
  for (int i = 0; i < 2 * MAX_SIZE; i++) {
    cache.getUnchecked(i);
    assertEquals(Math.min(i + 1, MAX_SIZE), cache.size());
  }

  assertEquals(MAX_SIZE, cache.size());
  CacheTesting.checkValidState(cache);
}
项目:googles-monorepo-demo    文件:CacheEvictionTest.java   
public void testEviction_maxWeightOneSegment() {
  IdentityLoader<Integer> loader = identityLoader();
  LoadingCache<Integer, Integer> cache = CacheBuilder.newBuilder()
      .concurrencyLevel(1)
      .maximumWeight(2 * MAX_SIZE)
      .weigher(constantWeigher(2))
      .build(loader);
  for (int i = 0; i < 2 * MAX_SIZE; i++) {
    cache.getUnchecked(i);
    assertEquals(Math.min(i + 1, MAX_SIZE), cache.size());
  }

  assertEquals(MAX_SIZE, cache.size());
  CacheTesting.checkValidState(cache);
}
项目:googles-monorepo-demo    文件:CacheEvictionTest.java   
public void testEviction_overflow() {
  CountingRemovalListener<Object, Object> removalListener = countingRemovalListener();
  IdentityLoader<Object> loader = identityLoader();
  LoadingCache<Object, Object> cache = CacheBuilder.newBuilder()
      .concurrencyLevel(1)
      .maximumWeight(1L << 31)
      .weigher(constantWeigher(Integer.MAX_VALUE))
      .removalListener(removalListener)
      .build(loader);
  cache.getUnchecked(objectWithHash(0));
  cache.getUnchecked(objectWithHash(0));
  CacheTesting.processPendingNotifications(cache);
  assertEquals(1, removalListener.getCount());
}
项目:googles-monorepo-demo    文件:CacheEvictionTest.java   
public void testUpdateRecency_onGet() {
  IdentityLoader<Integer> loader = identityLoader();
  final LoadingCache<Integer, Integer> cache =
      CacheBuilder.newBuilder().maximumSize(MAX_SIZE).build(loader);
  CacheTesting.checkRecency(cache, MAX_SIZE,
      new Receiver<ReferenceEntry<Integer, Integer>>() {
        @Override
        public void accept(ReferenceEntry<Integer, Integer> entry) {
          cache.getUnchecked(entry.getKey());
        }
      });
}
项目:googles-monorepo-demo    文件:CacheEvictionTest.java   
public void testUpdateRecency_onInvalidate() {
  IdentityLoader<Integer> loader = identityLoader();
  final LoadingCache<Integer, Integer> cache = CacheBuilder.newBuilder()
      .maximumSize(MAX_SIZE)
      .concurrencyLevel(1)
      .build(loader);
  CacheTesting.checkRecency(cache, MAX_SIZE,
      new Receiver<ReferenceEntry<Integer, Integer>>() {
        @Override
        public void accept(ReferenceEntry<Integer, Integer> entry) {
          Integer key = entry.getKey();
          cache.invalidate(key);
        }
      });
}
项目:googles-monorepo-demo    文件:CacheEvictionTest.java   
public void testEviction_lru() {
  // test lru within a single segment
  IdentityLoader<Integer> loader = identityLoader();
  LoadingCache<Integer, Integer> cache = CacheBuilder.newBuilder()
      .concurrencyLevel(1)
      .maximumSize(10)
      .build(loader);
  CacheTesting.warmUp(cache, 0, 10);
  Set<Integer> keySet = cache.asMap().keySet();
  assertThat(keySet).containsExactly(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);

  // re-order
  getAll(cache, asList(0, 1, 2));
  CacheTesting.drainRecencyQueues(cache);
  assertThat(keySet).containsExactly(3, 4, 5, 6, 7, 8, 9, 0, 1, 2);

  // evict 3, 4, 5
  getAll(cache, asList(10, 11, 12));
  CacheTesting.drainRecencyQueues(cache);
  assertThat(keySet).containsExactly(6, 7, 8, 9, 0, 1, 2, 10, 11, 12);

  // re-order
  getAll(cache, asList(6, 7, 8));
  CacheTesting.drainRecencyQueues(cache);
  assertThat(keySet).containsExactly(9, 0, 1, 2, 10, 11, 12, 6, 7, 8);

  // evict 9, 0, 1
  getAll(cache, asList(13, 14, 15));
  CacheTesting.drainRecencyQueues(cache);
  assertThat(keySet).containsExactly(2, 10, 11, 12, 6, 7, 8, 13, 14, 15);
}
项目:guava-libraries    文件:CacheEvictionTest.java   
public void testEviction_setMaxSegmentSize() {
  IdentityLoader<Object> loader = identityLoader();
  for (int i = 1; i < 1000; i++) {
    LoadingCache<Object, Object> cache = CacheBuilder.newBuilder()
        .maximumSize(i)
        .build(loader);
    assertEquals(i, CacheTesting.getTotalSegmentSize(cache));
  }
}
项目:guava-libraries    文件:CacheEvictionTest.java   
public void testEviction_setMaxSegmentWeight() {
  IdentityLoader<Object> loader = identityLoader();
  for (int i = 1; i < 1000; i++) {
    LoadingCache<Object, Object> cache = CacheBuilder.newBuilder()
        .maximumWeight(i)
        .weigher(constantWeigher(1))
        .build(loader);
    assertEquals(i, CacheTesting.getTotalSegmentSize(cache));
  }
}