Beispiel #1
0
    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());
    }
Beispiel #2
0
    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);
    }
Beispiel #3
0
    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);
    }