System.Transactions.Tests.TransactionScopeTest.ExplicitTransaction1 C# (CSharp) Метод

ExplicitTransaction1() приватный Метод

private ExplicitTransaction1 ( ) : void
Результат void
        public void ExplicitTransaction1()
        {
            Assert.Null(Transaction.Current);
            CommittableTransaction ct = new CommittableTransaction();
            Transaction oldTransaction = Transaction.Current;

            Transaction.Current = ct;
            try
            {
                IntResourceManager irm = new IntResourceManager(1);

                irm.Value = 2;

                using (TransactionScope scope = new TransactionScope())
                {
                    Assert.Equal(ct, Transaction.Current);
                    irm.Value = 4;
                    scope.Complete();
                }

                Assert.Equal(ct, Transaction.Current);
                Assert.Equal(TransactionStatus.Active, Transaction.Current.TransactionInformation.Status);
                Assert.Equal(1, irm.Actual);

                ct.Commit();
                Assert.Equal(4, irm.Actual);
                Assert.Equal(TransactionStatus.Committed, Transaction.Current.TransactionInformation.Status);
            }
            finally
            {
                Transaction.Current = oldTransaction;
            }
        }