public void ShouldMoveDuplicateItemToTopOfList(string[] stringsToPush, string expectedString, int expectedCount)
        {
            StringStack stringStack = new StringStack(stringsToPush);

            Assert.AreEqual(expectedString, stringStack.Peek());
            Assert.AreEqual(expectedCount, stringStack.Count);
        }
        public void ShouldNotAddEmptyStrings()
        {
            StringStack stringStack = new StringStack();

            stringStack.Push("");

            Assert.AreEqual(0, stringStack.Count);
        }
        public void ShouldRemoveOldestStringWhenAtCapacityAndNewStringIsAdded()
        {
            StringStack stringStack = new StringStack(3);

            stringStack.Push("apple");
            stringStack.Push("orange");
            stringStack.Push("pineapple");
            stringStack.Push("pear");

            Assert.AreEqual(3, stringStack.Count);
            Assert.AreEqual("pear", stringStack.Peek());
        }
        public void ShouldReturnStringAtIndex(string[] stringsToPush, string expected, int index)
        {
            StringStack stringStack = new StringStack(stringsToPush);

            Assert.AreEqual(expected, stringStack[index]);
        }
        public void ShouldReturnMostRecentlyAddedStringAsTopItem(string[] stringsToPush, string expected)
        {
            StringStack stringStack = new StringStack(stringsToPush);

            Assert.AreEqual(expected, stringStack.Peek());
        }