public void testReplaceFromNonOwner() throws Exception { String key = "k1", value = "value", value2 = "v2"; initAndTest(); for (Cache<Object, String> c : caches) { CacheLoader store = TestingUtil.getFirstLoader(c); if (isFirstOwner(c, key)) { assertIsInContainerImmortal(c, key); assert store.load(key).getValue().equals(value); } } Object retval = getFirstNonOwner(key).replace(key, value2); asyncWait(key, ReplaceCommand.class); if (testRetVals) assert value.equals(retval); for (Cache<Object, String> c : caches) { CacheLoader store = TestingUtil.getFirstLoader(c); if (isFirstOwner(c, key)) { assertIsInContainerImmortal(c, key); } assert store.load(key).getValue().equals(value2); assertNumberOfInvocations(store, "write", 2); } }
public void testRemoveFromNonOwner() throws Exception { String key = "k1", value = "value"; initAndTest(); for (Cache<Object, String> c : caches) { CacheLoader store = TestingUtil.getFirstLoader(c); if (isFirstOwner(c, key)) { assertIsInContainerImmortal(c, key); assert store.load(key).getValue().equals(value); } } Object retval = getFirstNonOwner(key).remove(key); asyncWait("k1", RemoveCommand.class); if (testRetVals) assert value.equals(retval); for (Cache<Object, String> c : caches) { CacheLoader store = TestingUtil.getFirstLoader(c); MarshalledEntry me = store.load(key); if (me == null) { assertNumberOfInvocations(store, "delete", 1); assertNumberOfInvocations(store, "write", 1); } else { assertNumberOfInvocations(store, "write", 2); } } }
public void testPutFromNonOwner() throws Exception { String key = "k4", value = "value4"; for (Cache<Object, String> c : caches) assert c.isEmpty(); Cache<Object, String> nonOwner = getFirstNonOwner(key); CacheLoader nonOwnerStore = TestingUtil.getFirstLoader(nonOwner); assert !nonOwnerStore.contains(key); Object retval = nonOwner.put(key, value); asyncWait(key, PutKeyValueCommand.class); Cache[] owners = getOwners(key); CacheLoader store = TestingUtil.getFirstLoader(owners[0]); assertIsInContainerImmortal(owners[0], key); assert store.contains(key); for (int i = 1; i < owners.length; i++) { store = TestingUtil.getFirstLoader(owners[i]); assertIsInContainerImmortal(owners[i], key); assert store.contains(key); } for (Cache<Object, String> c : caches) { store = TestingUtil.getFirstLoader(c); assert store.contains(key); assertNumberOfInvocations(store, "write", 1); } if (testRetVals) assert retval == null; assertOnAllCachesAndOwnership(key, value); }