package org.redisson; import static org.assertj.core.api.Assertions.assertThat; import java.math.BigDecimal; import org.junit.Test; import org.redisson.api.RAtomicDouble; public class RedissonAtomicDoubleTest extends BaseTest { @Test public void testCompareAndSet() { RAtomicDouble al = redisson.getAtomicDouble("test"); assertThat(al.compareAndSet(-1, 2.5)).isFalse(); assertThat(al.get()).isZero(); assertThat(al.compareAndSet(0, 2.5)).isTrue(); assertThat(al.get()).isEqualTo(2.5); } @Test public void testSetThenIncrement() { RAtomicDouble al = redisson.getAtomicDouble("test"); al.set(2.81); assertThat(al.getAndIncrement()).isEqualTo(2.81); assertThat(al.get()).isEqualTo(3.81); } @Test public void testIncrementAndGet() { RAtomicDouble al = redisson.getAtomicDouble("test"); assertThat(al.incrementAndGet()).isEqualTo(1); assertThat(al.get()).isEqualTo(1); } @Test public void testGetAndIncrement() { RAtomicDouble al = redisson.getAtomicDouble("test"); assertThat(al.getAndIncrement()).isEqualTo(0); assertThat(al.get()).isEqualTo(1); } @Test public void test() { RAtomicDouble al = redisson.getAtomicDouble("test"); assertThat(al.get()).isEqualTo(0); assertThat(al.getAndIncrement()).isEqualTo(0); assertThat(al.get()).isEqualTo(1); assertThat(al.getAndDecrement()).isEqualTo(1); assertThat(al.get()).isEqualTo(0); assertThat(al.getAndIncrement()).isEqualTo(0); assertThat(al.getAndSet(12.8012)).isEqualTo(1); assertThat(al.get()).isEqualTo(12.8012); al.set(1.00123); double state = redisson.getAtomicDouble("test").get(); assertThat(state).isEqualTo(1.00123); al.set(BigDecimal.valueOf(Long.MAX_VALUE).doubleValue()); al.incrementAndGet(); double newState = redisson.getAtomicDouble("test").get(); assertThat(newState).isEqualTo(BigDecimal.valueOf(Long.MAX_VALUE).doubleValue()); } }