package org.multiverse.api;
import org.junit.Test;
import org.multiverse.api.references.*;
import static org.junit.Assert.*;
import static org.multiverse.TestUtils.assertEqualsDouble;
import static org.multiverse.api.StmUtils.*;
public class StmUtils_newRefsTest {
@Test
public void whenNewRefWithDefaultValue() {
TxnRef<String> ref = newTxnRef();
assertNotNull(ref);
assertNull(ref.atomicGet());
}
@Test
public void whennewTxnRef() {
String value = "foo";
TxnRef<String> ref = newTxnRef(value);
assertNotNull(ref);
assertSame(value, ref.atomicGet());
}
@Test
public void whennewTxnIntegerWithDefaultValue() {
TxnInteger ref = newTxnInteger();
assertNotNull(ref);
assertEquals(0, ref.atomicGet());
}
@Test
public void whennewTxnInteger() {
int value = 10;
TxnInteger ref = newTxnInteger(value);
assertNotNull(ref);
assertEquals(value, ref.atomicGet());
}
@Test
public void whennewTxnLongWithDefaultValue() {
TxnLong ref = newTxnLong();
assertNotNull(ref);
assertEquals(0, ref.atomicGet());
}
@Test
public void whennewTxnLong() {
int value = 10;
TxnLong ref = newTxnLong(value);
assertNotNull(ref);
assertEquals(value, ref.atomicGet());
}
@Test
public void whennewTxnBooleanWithDefaultValue() {
TxnBoolean ref = newTxnBoolean();
assertNotNull(ref);
assertFalse(ref.atomicGet());
}
@Test
public void whennewTxnBoolean() {
boolean value = true;
TxnBoolean ref = newTxnBoolean(value);
assertNotNull(ref);
assertTrue(ref.atomicGet());
}
@Test
public void whennewTxnDoubleWithDefaultValue() {
TxnDouble ref = newTxnDouble();
assertNotNull(ref);
assertEqualsDouble(0, ref.atomicGet());
}
@Test
public void whennewTxnDouble() {
double value = 10;
TxnDouble ref = newTxnDouble(value);
assertNotNull(ref);
assertEqualsDouble(value, ref.atomicGet());
}
}