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); }
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(); }
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(); }