@Test
  @ClientCompatibleTest
  public void compareAndSet() {
    HazelcastInstance hazelcastInstance = createHazelcastInstance();
    IAtomicReference<String> ref = hazelcastInstance.getAtomicReference("compareAndSet");

    assertTrue(ref.compareAndSet(null, null));
    assertNull(ref.get());

    assertFalse(ref.compareAndSet("foo", "bar"));
    assertNull(ref.get());

    assertTrue(ref.compareAndSet(null, "foo"));
    assertEquals("foo", ref.get());

    ref.set("foo");
    assertTrue(ref.compareAndSet("foo", "foo"));
    assertEquals("foo", ref.get());

    assertTrue(ref.compareAndSet("foo", "bar"));
    assertEquals("bar", ref.get());

    assertTrue(ref.compareAndSet("bar", null));
    assertNull(ref.get());
  }