package org.multiverse.stms.gamma.transactions;
import org.junit.Test;
import static org.junit.Assert.*;
public class SpeculativeGammaConfigurationTest {
@Test
public void whenLean() {
SpeculativeGammaConfiguration config = new SpeculativeGammaConfiguration();
assertFalse(config.fat);
assertFalse(config.nonRefTypeDetected);
assertFalse(config.commuteDetected);
assertFalse(config.orelseDetected);
assertFalse(config.listenersDetected);
assertFalse(config.locksDetected);
assertFalse(config.abortOnlyDetected);
assertFalse(config.ensureDetected);
assertFalse(config.constructedObjectsDetected);
assertEquals(1, config.minimalLength);
}
@Test
public void newWithNonRefType() {
SpeculativeGammaConfiguration config = new SpeculativeGammaConfiguration()
.newWithNonRefType();
assertTrue(config.fat);
assertTrue(config.nonRefTypeDetected);
assertFalse(config.commuteDetected);
assertFalse(config.orelseDetected);
assertFalse(config.listenersDetected);
assertFalse(config.locksDetected);
assertFalse(config.abortOnlyDetected);
assertFalse(config.ensureDetected);
assertFalse(config.constructedObjectsDetected);
assertEquals(1, config.minimalLength);
}
@Test
public void newWithEnsure() {
SpeculativeGammaConfiguration config = new SpeculativeGammaConfiguration()
.newWithEnsure();
assertTrue(config.fat);
assertFalse(config.nonRefTypeDetected);
assertFalse(config.commuteDetected);
assertFalse(config.orelseDetected);
assertFalse(config.listenersDetected);
assertFalse(config.locksDetected);
assertFalse(config.abortOnlyDetected);
assertTrue(config.ensureDetected);
assertFalse(config.constructedObjectsDetected);
assertEquals(1, config.minimalLength);
}
@Test
public void newWithAbortOnly() {
SpeculativeGammaConfiguration config = new SpeculativeGammaConfiguration()
.newWithAbortOnly();
assertTrue(config.fat);
assertFalse(config.nonRefTypeDetected);
assertFalse(config.commuteDetected);
assertFalse(config.orelseDetected);
assertFalse(config.listenersDetected);
assertFalse(config.locksDetected);
assertTrue(config.abortOnlyDetected);
assertFalse(config.ensureDetected);
assertFalse(config.constructedObjectsDetected);
assertEquals(1, config.minimalLength);
}
@Test
public void newWithCommute() {
SpeculativeGammaConfiguration config = new SpeculativeGammaConfiguration()
.newWithCommute();
assertTrue(config.fat);
assertFalse(config.nonRefTypeDetected);
assertTrue(config.commuteDetected);
assertFalse(config.orelseDetected);
assertFalse(config.listenersDetected);
assertFalse(config.locksDetected);
assertFalse(config.abortOnlyDetected);
assertFalse(config.ensureDetected);
assertFalse(config.constructedObjectsDetected);
assertEquals(1, config.minimalLength);
}
@Test
public void newListListeners() {
SpeculativeGammaConfiguration config = new SpeculativeGammaConfiguration()
.newWithListeners();
assertTrue(config.fat);
assertFalse(config.nonRefTypeDetected);
assertFalse(config.commuteDetected);
assertFalse(config.orelseDetected);
assertTrue(config.listenersDetected);
assertFalse(config.locksDetected);
assertFalse(config.abortOnlyDetected);
assertFalse(config.ensureDetected);
assertFalse(config.constructedObjectsDetected);
assertEquals(1, config.minimalLength);
}
@Test
public void newWithOrElse() {
SpeculativeGammaConfiguration config = new SpeculativeGammaConfiguration()
.newWithOrElse();
assertTrue(config.fat);
assertFalse(config.nonRefTypeDetected);
assertFalse(config.commuteDetected);
assertTrue(config.orelseDetected);
assertFalse(config.listenersDetected);
assertFalse(config.locksDetected);
assertFalse(config.abortOnlyDetected);
assertFalse(config.ensureDetected);
assertFalse(config.constructedObjectsDetected);
assertEquals(1, config.minimalLength);
}
@Test
public void newWithMinimalLength() {
SpeculativeGammaConfiguration config = new SpeculativeGammaConfiguration()
.newWithMinimalLength(10);
assertFalse(config.fat);
assertFalse(config.nonRefTypeDetected);
assertFalse(config.commuteDetected);
assertFalse(config.orelseDetected);
assertFalse(config.listenersDetected);
assertFalse(config.locksDetected);
assertFalse(config.abortOnlyDetected);
assertFalse(config.ensureDetected);
assertFalse(config.constructedObjectsDetected);
assertEquals(10, config.minimalLength);
}
@Test
public void newWithLocks() {
SpeculativeGammaConfiguration config = new SpeculativeGammaConfiguration()
.newWithLocks();
assertTrue(config.fat);
assertFalse(config.nonRefTypeDetected);
assertFalse(config.commuteDetected);
assertFalse(config.orelseDetected);
assertFalse(config.listenersDetected);
assertTrue(config.locksDetected);
assertFalse(config.abortOnlyDetected);
assertFalse(config.ensureDetected);
assertFalse(config.constructedObjectsDetected);
assertEquals(1, config.minimalLength);
}
@Test
public void newWithConstructedObjects() {
SpeculativeGammaConfiguration config = new SpeculativeGammaConfiguration()
.newWithConstructedObjects();
assertTrue(config.fat);
assertFalse(config.nonRefTypeDetected);
assertFalse(config.commuteDetected);
assertFalse(config.orelseDetected);
assertFalse(config.listenersDetected);
assertFalse(config.locksDetected);
assertFalse(config.abortOnlyDetected);
assertFalse(config.ensureDetected);
assertTrue(config.constructedObjectsDetected);
assertEquals(1, config.minimalLength);
}
}