@Test(dataProvider = "owningModeAndReadMethod")
public void testReadLoad(boolean isSourceOwner, ReadMethod method) {
Object key = getKey(isSourceOwner, DIST);
List<Cache<Object, Object>> owners = caches(DIST).stream()
.filter(cache -> cache.getAdvancedCache().getDistributionManager().getLocality(key).isLocal())
.collect(Collectors.toList());
assertTrue(method.eval(key, ro, view -> { assertFalse(view.find().isPresent()); return true; }));
cache(0, DIST).put(key, "value");
caches(DIST).forEach(cache -> assertEquals(cache.get(key), "value", getAddress(cache).toString()));
caches(DIST).forEach(cache -> cache.evict(key));
caches(DIST).forEach(cache -> assertFalse(cache.getAdvancedCache().getDataContainer().containsKey(key), getAddress(cache).toString()));
owners.forEach(cache -> {
Set<DummyInMemoryStore> stores = cache.getAdvancedCache().getComponentRegistry().getComponent(PersistenceManager.class).getStores(DummyInMemoryStore.class);
DummyInMemoryStore store = stores.iterator().next();
assertTrue(store.contains(key), getAddress(cache).toString());
});
assertEquals(method.eval(key, ro,
view -> {
assertTrue(view.find().isPresent());
assertEquals(view.get(), "value");
return "OK";
}), "OK");
}
}