示例#1
0
        public void Push_1_Is1()
        {
            var reversibles = new ReversibleStack();
            var value       = new Value();

            reversibles.Push(new Add1(value));
            Assert.AreEqual(1, value.Number);
        }
示例#2
0
        public void PushUndo_Is0()
        {
            var reversibles = new ReversibleStack();
            var value       = new Value();

            reversibles.Push(new Add1(value));
            reversibles.Undo();
            Assert.AreEqual(0, value.Number);
        }
示例#3
0
        public void Push_3WithMaxCountOf2_Is1()
        {
            var reversibles = new ReversibleStack(2);
            var value       = new Value();

            reversibles.Push(new Add1(value));
            reversibles.Push(new Add1(value));
            reversibles.Push(new Add1(value));
            reversibles.Undo();
            reversibles.Undo();
            reversibles.Undo();
            Assert.AreEqual(1, value.Number);
        }
示例#4
0
        public void Push_InMiddleOfStack_RemovesLaterReversibles()
        {
            var reversibles = new ReversibleStack();
            var value       = new Value();

            reversibles.Push(new Add1(value));
            reversibles.Push(new Add1(value));
            reversibles.Push(new Add1(value));
            reversibles.Undo();
            reversibles.Undo();
            reversibles.Push(new Add1(value));
            reversibles.Redo();
            reversibles.Redo();
            Assert.AreEqual(2, value.Number);
        }
示例#5
0
        public void Redo_AtZeroReversibles_DoesNothing()
        {
            var reversibles = new ReversibleStack();

            reversibles.Redo();
        }