@Test(expected = UnsupportedOperationException.class) public void testBulkComputeThrowsForGenericFunction() throws Exception { Function< Iterable<? extends Map.Entry<? extends Long, ? extends String>>, Iterable<? extends Map.Entry<? extends Long, ? extends String>>> remappingFunction = mock(Function.class); store.bulkCompute(new HashSet<Long>(Arrays.asList(1L, 2L)), remappingFunction); }
@Test public void testBulkComputeRemoveAll() throws Exception { store.put(1L, "one"); store.put(2L, "two"); store.put(3L, "three"); Ehcache.RemoveAllFunction<Long, String> removeAllFunction = new Ehcache.RemoveAllFunction<Long, String>(); Map<Long, Store.ValueHolder<String>> valueHolderMap = store.bulkCompute(new HashSet<Long>(Arrays.asList(1L, 2L, 4L)), removeAllFunction); assertThat(valueHolderMap.get(1L), nullValue()); assertThat(store.get(1L), nullValue()); assertThat(valueHolderMap.get(2L), nullValue()); assertThat(store.get(2L), nullValue()); assertThat(valueHolderMap.get(4L), nullValue()); assertThat(store.get(4L), nullValue()); validateStats(store, EnumSet.noneOf(StoreOperationOutcomes.RemoveOutcome.class)); }
@Test public void testBulkComputePutAll() throws Exception { store.put(1L, "another one"); Map<Long, String> map = new HashMap<Long, String>(); map.put(1L, "one"); map.put(2L, "two"); Ehcache.PutAllFunction<Long, String> putAllFunction = new Ehcache.PutAllFunction<Long, String>(null, map, null); Map<Long, Store.ValueHolder<String>> valueHolderMap = store.bulkCompute(new HashSet<Long>(Arrays.asList(1L, 2L)), putAllFunction); assertThat(valueHolderMap.get(1L).value(), is(map.get(1L))); assertThat(store.get(1L).value(), is(map.get(1L))); assertThat(valueHolderMap.get(2L).value(), is(map.get(2L))); assertThat(store.get(2L).value(), is(map.get(2L))); assertThat(putAllFunction.getActualPutCount().get(), is(2)); validateStats( store, EnumSet.of(StoreOperationOutcomes.PutOutcome.PUT)); // outcome of the initial store put }