package org.multiverse.stms.gamma.transactions; import org.junit.Test; import org.multiverse.stms.gamma.GammaStm; import org.multiverse.stms.gamma.GammaStmConfig; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; /** * @author Peter Veentjer */ public class GammaTxnConfigTest { @Test public void testIsRichMansConflictScanRequired() { GammaStmConfig stmConfig = new GammaStmConfig(); stmConfig.maximumPoorMansConflictScanLength = 0; stmConfig.speculativeConfigEnabled = true; GammaStm stm = new GammaStm(stmConfig); GammaTxnConfig txConfig = new GammaTxnConfig(stm, stmConfig); txConfig.init(); assertTrue(txConfig.speculativeConfiguration.get().richMansConflictScanRequired); } @Test public void testIsRichMansConflictScanRequiredIfMaximumPoorMansConflictScanLengthIsZero() { GammaStmConfig stmConfig = new GammaStmConfig(); stmConfig.maximumPoorMansConflictScanLength = 10; stmConfig.speculativeConfigEnabled = true; stmConfig.dirtyCheck = false; GammaStm stm = new GammaStm(stmConfig); GammaTxnConfig txConfig = new GammaTxnConfig(stm, stmConfig); txConfig.init(); assertFalse(txConfig.speculativeConfiguration.get().richMansConflictScanRequired); } }