public void testHit() { DoubleObjectStorage storage = mock(DoubleObjectStorage.class); DoubleCharacterCache cache = (DoubleCharacterCache) Wrapping.getFactory( new Signature(double.class, Object.class), new Signature(double.class, char.class), false) .wrap("123", CALCULATABLE, storage, new MutableStatisticsImpl()); cache.setDependencyNode(DependencyTracker.DUMMY_NODE); when(storage.load(42d)).thenReturn('*'); when(storage.size()).thenReturn(1); assert cache.getSize() == 1; assert cache.getStatistics().getHits() == 0; assert cache.getStatistics().getMisses() == 0; assert cache.getOrCreate(42d) == '*'; assert cache.getStatistics().getHits() == 1; assert cache.getStatistics().getMisses() == 0; verify(storage).size(); verify(storage, atLeast(2)).load(42d); verifyNoMoreInteractions(storage); }