示例#1
0
  public void testHit() {
    ObjectStorage storage = mock(ObjectStorage.class);

    ByteCache cache =
        (ByteCache)
            Wrapping.getFactory(
                    new Signature(null, Object.class), new Signature(null, byte.class), false)
                .wrap("123", CALCULATABLE, storage, new MutableStatisticsImpl());
    cache.setDependencyNode(DependencyTracker.DUMMY_NODE);

    when(storage.load()).thenReturn((byte) 42);
    when(storage.size()).thenReturn(1);

    assert cache.getSize() == 1;
    assert cache.getStatistics().getHits() == 0;
    assert cache.getStatistics().getMisses() == 0;

    assert cache.getOrCreate() == (byte) 42;

    verify(storage).size();
    verify(storage, atLeast(1)).load();
    verifyNoMoreInteractions(storage);

    assert cache.getStatistics().getHits() == 1;
    assert cache.getStatistics().getMisses() == 0;
  }