public void ExplicitTransaction4()
{
Assert.Null(Transaction.Current);
CommittableTransaction ct = new CommittableTransaction();
Transaction oldTransaction = Transaction.Current;
/* Not setting ambient transaction
Transaction.Current = ct;
*/
IntResourceManager irm = new IntResourceManager(1);
using (TransactionScope scope = new TransactionScope(ct))
{
Assert.Equal(ct, Transaction.Current);
irm.Value = 2;
scope.Complete();
}
Assert.Equal(oldTransaction, Transaction.Current);
Assert.Equal(TransactionStatus.Active, ct.TransactionInformation.Status);
Assert.Equal(1, irm.Actual);
ct.Commit();
Assert.Equal(2, irm.Actual);
Assert.Equal(TransactionStatus.Committed, ct.TransactionInformation.Status);
irm.Check(1, 1, 0, 0, "irm");
}