コード例 #1
0
ファイル: TestTransaction.cs プロジェクト: vol16bit/xenko
        public void TestMultipleOperationsTransactionRollforward()
        {
            var stack   = TransactionStackFactory.Create(5);
            var counter = new OrderedOperation.Counter();

            OrderedOperation[] operations = new OrderedOperation[4];
            using (stack.CreateTransaction())
            {
                for (var i = 0; i < operations.Length; ++i)
                {
                    operations[i] = new OrderedOperation(counter, i, operations.Length);
                    stack.PushOperation(operations[i]);
                }
            }
            stack.Rollback();
            // Above code must be similar to TestMultipleOperationsTransactionRollback
            counter.Reset();
            stack.Rollforward();
            Assert.AreEqual(false, stack.IsEmpty);
            Assert.AreEqual(true, stack.CanRollback);
            Assert.AreEqual(false, stack.CanRollforward);
            Assert.AreEqual(operations.Length, counter.Value);
            foreach (var operation in operations)
            {
                Assert.AreEqual(true, operation.IsDone);
                Assert.AreEqual(1, operation.RollbackCount);
                Assert.AreEqual(1, operation.RollforwardCount);
            }
        }
コード例 #2
0
ファイル: TestTransaction.cs プロジェクト: vol16bit/xenko
        public void TestMultipleOperationsTransaction()
        {
            var stack   = TransactionStackFactory.Create(5);
            var counter = new OrderedOperation.Counter();

            OrderedOperation[] operations = new OrderedOperation[4];
            using (stack.CreateTransaction())
            {
                for (int i = 0; i < operations.Length; ++i)
                {
                    var operation = new OrderedOperation(counter, 0, operations.Length - i - 1);
                    stack.PushOperation(operation);
                }
            }
            Assert.AreEqual(false, stack.IsEmpty);
            Assert.AreEqual(true, stack.CanRollback);
            Assert.AreEqual(false, stack.CanRollforward);
        }
コード例 #3
0
 public void TestMultipleOperationsTransactionRollforward()
 {
     var stack = TransactionStackFactory.Create(5);
     var counter = new OrderedOperation.Counter();
     OrderedOperation[] operations = new OrderedOperation[4];
     using (stack.CreateTransaction())
     {
         for (var i = 0; i < operations.Length; ++i)
         {
             operations[i] = new OrderedOperation(counter, i, operations.Length);
             stack.PushOperation(operations[i]);
         }
     }
     stack.Rollback();
     // Above code must be similar to TestMultipleOperationsTransactionRollback
     counter.Reset();
     stack.Rollforward();
     Assert.AreEqual(false, stack.IsEmpty);
     Assert.AreEqual(true, stack.CanRollback);
     Assert.AreEqual(false, stack.CanRollforward);
     Assert.AreEqual(operations.Length, counter.Value);
     foreach (var operation in operations)
     {
         Assert.AreEqual(true, operation.IsDone);
         Assert.AreEqual(1, operation.RollbackCount);
         Assert.AreEqual(1, operation.RollforwardCount);
     }
 }
コード例 #4
0
 public void TestMultipleOperationsTransaction()
 {
     var stack = TransactionStackFactory.Create(5);
     var counter = new OrderedOperation.Counter();
     OrderedOperation[] operations = new OrderedOperation[4];
     using (stack.CreateTransaction())
     {
         for (int i = 0; i < operations.Length; ++i)
         {
             var operation = new OrderedOperation(counter, 0, operations.Length - i - 1);
             stack.PushOperation(operation);
         }
     }
     Assert.AreEqual(false, stack.IsEmpty);
     Assert.AreEqual(true, stack.CanRollback);
     Assert.AreEqual(false, stack.CanRollforward);
 }