示例#1
0
        public void CanUnlock_Unlock_Test()
        {
            //  Arrange
            var stack = new UncheckedLayeredStack <string>();

            stack.Push("p");
            stack.Push("q");
            stack.Lock();
            //  Act
            stack.Unlock();
            //  Assert
            Assert.Equal(0, stack.LockCount());
            Assert.Equal(2, stack.Size());
        }
示例#2
0
        public void SimplePop_Pop_Test()
        {
            //  Arrange
            var stack = new UncheckedLayeredStack <string>();

            stack.Push("a");
            stack.Push("b");
            //  Act
            var b = stack.Pop();
            var a = stack.Pop();

            //  Assert
            Assert.True(stack.IsEmpty());
            Assert.Equal(0, stack.Size());
            Assert.Equal("b", b);
            Assert.Equal("a", a);
        }
示例#3
0
        public void Simple_RawLock_Test()
        {
            //  Arrange
            var vstack = new CheckedLayeredStack <string>();

            vstack.Lock();
            vstack.Push("a");
            vstack.Push("b");
            var cstack = new UncheckedLayeredStack <string>();

            //  Act
            cstack.RawLock(4, vstack);
            //  Assert
            Assert.Equal(1, vstack.LockCount());
            Assert.Equal(0, vstack.Size());
            Assert.Equal(1, cstack.LockCount());
            Assert.Equal(4, cstack.Size());
            Assert.Equal("a", cstack[0]);
            Assert.Equal("b", cstack[1]);
            Assert.Null(cstack[2]);
            Assert.Null(cstack[3]);
        }