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);
}
}
}