public void CompletedTest() { using var transaction = new BaseTransaction(ITransaction.TransactionMode.Create); Assert.AreEqual(false, transaction.Completed); transaction.Commit(); Assert.AreEqual(true, transaction.Completed); Assert.Catch <InvalidOperationException>(() => transaction.Commit()); }
public void SideEffectTest() { var a = 0; using var transaction = new BaseTransaction(ITransaction.TransactionMode.Create); Assert.AreEqual(1, transaction.RunSideEffect(() => ++ a, () => a--)); Assert.AreEqual(1, a); transaction.RunSideEffect(() => { ++a; }, () => { a--; }); Assert.AreEqual(2, a); transaction.Commit(); Assert.AreEqual(2, a); }
public void DisposeTest() { var a = 0; using (var transaction = new BaseTransaction(ITransaction.TransactionMode.Create)) { transaction.RunSideEffect(() => a++, () => a--); Assert.AreEqual(1, a); } Assert.AreEqual(0, a); using (var transaction = new BaseTransaction(ITransaction.TransactionMode.Create)) { transaction.RunSideEffect(() => a++, () => a--); Assert.AreEqual(1, a); transaction.Commit(); } Assert.AreEqual(1, a); }