@Test
public void testGetAll() throws Exception {
Store<Number, CharSequence> store = mock(Store.class);
when(store.bulkComputeIfAbsent((Set<? extends Number>)argThat(hasItems(1, 2, 3)), any(Function.class))).thenAnswer(invocation -> {
Function<Iterable<? extends Number>, Iterable<? extends Map.Entry<? extends Number, ? extends CharSequence>>> function =
(Function<Iterable<? extends Number>, Iterable<? extends Map.Entry<? extends Number, ? extends CharSequence>>>) invocation.getArguments()[1];
Set<? extends Number> keys = (Set<? extends Number>) invocation.getArguments()[0];
function.apply(keys);
Map<Number, ValueHolder<String>> map = new HashMap<>();
map.put(1, null);
map.put(2, null);
map.put(3, valueHolder("three"));
return map;
});
InternalCache<Number, CharSequence> ehcache = getCache(store);
ehcache.init();
Map<Number, CharSequence> result = ehcache.getAll(new HashSet<Number>(Arrays.asList(1, 2, 3)));
assertThat(result, hasEntry(1, null));
assertThat(result, hasEntry(2, null));
assertThat(result, hasEntry(3, "three"));
verify(store).bulkComputeIfAbsent((Set<? extends Number>)argThat(hasItems(1, 2, 3)), any(Function.class));
}