예제 #1
0
        public void Case5_Push_4State_1Undo_1Redo_Index_ShouldBe_3()
        {
            var editor1 = new Editor("T1", "Text 1", 14, "TH SarabunPSK");
            var editor2 = new Editor("T2", "Text 2", 15, "TH SarabunPSK");
            var editor3 = new Editor("T3", "Text 3", 16, "TH SarabunPSK");
            var editor4 = new Editor("T4", "Text 4", 17, "TH SarabunPSK");

            var stateText = $"{editor4.Title} {editor4.Text} {editor4.FontFace} {editor4.FontSize}";

            var source = new List <Editor>()
            {
                editor1, editor2, editor3, editor4
            };

            source.ForEach(d =>
            {
                var editorState = new EditorState <Editor>(d);
                manager.PushState(editorState);
            });

            manager.Undo();
            var state = manager.Redo();

            var equalStateText  = stateText == state.Object.ToString();
            var equalStateIndex = manager.Index == 3;

            Assert.IsTrue(state != null);
            Assert.IsTrue(equalStateText, "State text not equal");
            Assert.IsTrue(equalStateText);
            Assert.IsTrue(equalStateIndex);
        }