public void testReplaceWithOldVal() { assertEmpty(KEY_1); cache(1).put(KEY_1, VALUE_1); assertCacheValue(1, KEY_1, VALUE_1); cache(0).put(KEY_1, VALUE_2); assertCacheValue(0, KEY_1, VALUE_2); cache(0).replace(KEY_1, VALUE_3, VALUE_4); assertCacheValue(0, KEY_1, VALUE_2); cache(0).replace(KEY_1, VALUE_2, VALUE_4); assertCacheValue(0, KEY_1, VALUE_4); assertNoTransactions(); }
protected void assertCacheValue(int originatorIndex, Object key, Object value) { for (int index = 0; index < caches().size(); ++index) { if ((index == originatorIndex && mode.isSynchronous()) || (index != originatorIndex && syncCommit)) { assertEquals(index, key, value); } else { assertEventuallyEquals(index, key, value); } } }
@Override protected void createCacheManagers() throws Throwable { ConfigurationBuilder dcc = getDefaultClusteredCacheConfig(mode, true); dcc.locking().isolationLevel(IsolationLevel.REPEATABLE_READ); createCluster(dcc, clusterSize); waitForClusterToForm(); }
protected void assertEmpty(Object... keys) { for (Cache cache : caches()) { for (Object key : keys) { assertNull(cache.get(key)); } } }
public void testRemoveIfPresent() { assertEmpty(KEY_1); cache(0).put(KEY_1, VALUE_1); cache(1).put(KEY_1, VALUE_2); assertCacheValue(1, KEY_1, VALUE_2); cache(0).remove(KEY_1, VALUE_1); assertCacheValue(0, KEY_1, VALUE_2); cache(0).remove(KEY_1, VALUE_2); assertCacheValue(0, KEY_1, null); assertNoTransactions(); }
public void testPutIfAbsent() { assertEmpty(KEY_1, KEY_2); cache(1).put(KEY_1, VALUE_1); assertCacheValue(1, KEY_1, VALUE_1); cache(0).putIfAbsent(KEY_1, VALUE_2); assertCacheValue(0, KEY_1, VALUE_1); cache(1).put(KEY_1, VALUE_3); assertCacheValue(1, KEY_1, VALUE_3); cache(0).putIfAbsent(KEY_1, VALUE_4); assertCacheValue(0, KEY_1, VALUE_3); cache(0).putIfAbsent(KEY_2, VALUE_1); assertCacheValue(0, KEY_2, VALUE_1); assertNoTransactions(); }