using Glass.Editing; using UnitTestSharp; namespace Glass.UnitTests.Editing { public class EditStepTests : TestFixture { public class ResetTests : TestFixture { public void ForgetsEverything() { var step = new EditStep { Run = EditRun.Typing, Start = 4, Open = true, Before = new EditState(1, 1, true, 7), After = new EditState(2, 2, true, 8), }; step.Removed.Chars.Append("ab", 0, 2); step.Inserted.Chars.Append("cde", 0, 3); step.Reset(); CheckEqual(0, step.StoredLength); CheckEqual(EditRun.Other, step.Run); CheckEqual(0, step.Start); CheckFalse(step.Open); CheckEqual(0, step.Before.Caret); CheckEqual(0, step.After.Version); } public void ForgetsPagesAndTextInTheDocument() { var step = new EditStep(); step.Removed.Set(EditSide.OfPages(StepTextTests.Pages(40))); step.Inserted.Set(EditSide.InDocument(900)); step.Reset(); CheckEqual(0, step.Removed.Length); CheckEqual(0, step.Inserted.Length); CheckFalse(step.Removed.HoldsPages); CheckFalse(step.Inserted.IsInDocument); } } public class StoredLengthTests : TestFixture { public void CountsBothTexts() { var step = new EditStep(); step.Removed.Chars.Append("ab", 0, 2); step.Inserted.Chars.Append("cde", 0, 3); CheckEqual(5, step.StoredLength); } public void CountsPagesButNotTextInTheDocument() { var step = new EditStep(); step.Removed.Set(EditSide.OfPages(PagedTextTests.Paged(new string('x', 40)).TakeOut(0, 40))); step.Inserted.Set(EditSide.InDocument(900)); CheckEqual(40, step.StoredLength); } } } }