package org.multiverse.stms.gamma; import org.junit.Before; import org.junit.Test; import org.multiverse.api.TxnExecutor; import org.multiverse.api.PropagationLevel; import static org.junit.Assert.assertTrue; public class GammaStm_txnExecutorTest { private GammaStm stm; @Before public void setUp() { stm = new GammaStm(); } @Test public void whenCreateTxnExecutor() { TxnExecutor executor = stm.getDefaultTxnExecutor(); assertTrue(executor instanceof LeanGammaTxnExecutor); } @Test public void testDefault() { TxnExecutor executor = stm.newTxnFactoryBuilder() .newTxnExecutor(); assertTrue(executor instanceof LeanGammaTxnExecutor); } @Test public void whenMandatory() { TxnExecutor executor = stm.newTxnFactoryBuilder() .setPropagationLevel(PropagationLevel.Mandatory) .newTxnExecutor(); assertTrue(executor instanceof FatGammaTxnExecutor); } @Test public void whenRequires() { TxnExecutor executor = stm.newTxnFactoryBuilder() .setPropagationLevel(PropagationLevel.Requires) .newTxnExecutor(); assertTrue(executor instanceof LeanGammaTxnExecutor); } @Test public void whenRequiresNew() { TxnExecutor executor = stm.newTxnFactoryBuilder() .setPropagationLevel(PropagationLevel.RequiresNew) .newTxnExecutor(); assertTrue(executor instanceof FatGammaTxnExecutor); } @Test public void whenNever() { TxnExecutor executor = stm.newTxnFactoryBuilder() .setPropagationLevel(PropagationLevel.Never) .newTxnExecutor(); assertTrue(executor instanceof FatGammaTxnExecutor); } @Test public void whenSupports() { TxnExecutor executor = stm.newTxnFactoryBuilder() .setPropagationLevel(PropagationLevel.Supports) .newTxnExecutor(); assertTrue(executor instanceof FatGammaTxnExecutor); } }