@Override public void accept(CacheEntryListener<K, V> listener) { listener.onRemove(event); } });
@Override public void onRemove(@Nonnull CacheEntryEvent<K, OsgiSafe<V>> event) { delegate.onRemove(new OsgiSafeCacheEntryEvent<>(event)); }
@Test public void testOnRemove() throws Exception { CacheLoader<String, String> cacheLoader = mock(CacheLoader.class); when(cacheLoader.load("remove")).thenReturn("REMOVE"); Cache<String, String> cache = factory.getCache("REMOVE_CACHE", cacheLoader, settingsBuilder().build()); CacheEntryListener listener = mock(CacheEntryListener.class); cache.addListener(listener, true); cache.get("remove"); cache.remove("remove"); ArgumentCaptor<CacheEntryEvent> captor = ArgumentCaptor.forClass(CacheEntryEvent.class); verify(listener, timeout(1000)).onRemove(captor.capture()); CacheEntryEvent<String, String> event = captor.getValue(); assertEquals("remove", event.getKey()); if (supportsRemoveOldValue()) { assertEquals("REMOVE", event.getOldValue()); } else { assertNull(event.getOldValue()); } assertNull(event.getValue()); }