@Override public void apply() throws Exception { // swap the value Assert.assertTrue(kvTable.compareAndSwap(KEY2, VAL2, VAL3)); } });
@Override public void apply() throws Exception { Assert.assertFalse(kvTable.compareAndSwap(KEY3, VAL1, VAL1)); } });
@Override public void apply() throws Exception { // write a swap, this should fail Assert.assertFalse(kvTable.compareAndSwap(KEY2, VAL1, VAL3)); Assert.assertArrayEquals(VAL2, kvTable.read(KEY2)); } });
@Override public void apply() throws Exception { // write a value and read it back kvTable.write(KEY1, VAL1); Assert.assertArrayEquals(VAL1, kvTable.read(KEY1)); // update the value and read it back kvTable.write(KEY1, VAL2); Assert.assertArrayEquals(VAL2, kvTable.read(KEY1)); // attempt to swap, expecting old value Assert.assertFalse(kvTable.compareAndSwap(KEY1, VAL1, VAL3)); Assert.assertArrayEquals(VAL2, kvTable.read(KEY1)); // swap the value and read it back Assert.assertTrue(kvTable.compareAndSwap(KEY1, VAL2, VAL3)); Assert.assertArrayEquals(VAL3, kvTable.read(KEY1)); // delete the value and verify its gone kvTable.delete(KEY1); Assert.assertNull(kvTable.read(KEY1)); } });