Esempio n. 1
0
        public void NoTransactions_SimpleStack()
        {
            var stack = new TransactionedStack();

            stack.push(1);
            stack.top().Should().Be(1);

            stack.push(2);
            stack.top().Should().Be(2);

            stack.pop();
            stack.top().Should().Be(1);

            stack.pop();
            stack.top().Should().Be(0);

            stack.pop();
            stack.top().Should().Be(0);
        }
Esempio n. 2
0
        public void Sample2()
        {
            var sol = new TransactionedStack();

            sol.push(4);

            sol.begin();                     // start transaction 1
            sol.push(7);                     // stack: [4,7]

            sol.begin();                     // start transaction 2
            sol.push(2);                     // stack: [4,7,2]
            sol.rollback().Should().BeTrue();
            sol.top().Should().Be(7);

            sol.begin();                     // start transaction 3
            sol.push(10);                    // stack: [4,7,10]
            sol.commit().Should().BeTrue();  // transaction 3 is committed
            sol.top().Should().Be(10);

            sol.rollback().Should().BeTrue();
            sol.top().Should().Be(4);
            sol.commit().Should().BeFalse();
        }
Esempio n. 3
0
        public void Sample1()
        {
            var stack = new TransactionedStack();

            stack.push(5);
            stack.push(2);
            stack.pop();
            stack.Values.Should().Equal(new[] { 5 });

            var stack1 = new TransactionedStack();

            stack1.top().Should().Be(0);
            stack1.pop();
        }