public void TestStateComponentPush()
        {
            StateComponent <TestStates> actual = new StateComponent <TestStates>(TestStates.s1);

            actual.Push(TestStates.s2);

            TestStates expected = TestStates.s2;

            Assert.AreEqual(expected, actual.Peek(),
                            "Test that the peeked state after a push is the topmost state");
        }
        public void TestStateComponentPop()
        {
            StateComponent <TestStates> actual = new StateComponent <TestStates>(TestStates.s1);

            actual.Push(TestStates.s2);
            actual.Pop();

            TestStates expected = TestStates.s1;

            Assert.AreEqual(expected, actual.Peek(),
                            "Test that the peeked state is the same after a push and pop");
        }