public void GroupEditsTest() { var doc = Doc.New(); var string1ID = default(Guid); var string2ID = default(Guid); var editID = NewID(); Assert.IsFalse(doc.HasItem(string1ID)); Assert.IsFalse(doc.HasItem(string2ID)); Assert.IsFalse(doc.CanUndo); Assert.IsFalse(doc.CanRedo); doc = doc.GroupEdits(editID, d => { d = StringItem.Create(d, out string1ID, "abc"); d = StringItem.Create(d, out string2ID, "xyz"); return(d); }); Assert.IsTrue(doc.HasItem(string1ID)); Assert.IsTrue(doc.HasItem(string2ID)); Assert.IsTrue(doc.CanUndo); Assert.IsFalse(doc.CanRedo); doc = doc.Undo(); Assert.IsFalse(doc.HasItem(string1ID)); Assert.IsFalse(doc.HasItem(string2ID)); Assert.IsFalse(doc.CanUndo); Assert.IsTrue(doc.CanRedo); doc = doc.Redo(); Assert.IsTrue(doc.HasItem(string1ID)); Assert.IsTrue(doc.HasItem(string2ID)); Assert.IsTrue(doc.CanUndo); Assert.IsFalse(doc.CanRedo); }
public void ChangeTest() { var doc = Doc.New(); doc = StringItem.Create(doc, out var stringID, "abc"); doc = StringItem.Change(doc, doc.Item <StringItem>(stringID), "xyz"); var stringItem = doc.Item <StringItem>(stringID); Assert.AreEqual("xyz", stringItem.Value); }
public void CreateTest() { var doc = Doc.New(); Assert.IsFalse(doc.CanRedo); Assert.IsFalse(doc.CanUndo); doc = StringItem.Create(doc, out var stringID, "abc"); var stringItem = doc.Item <StringItem>(stringID); Assert.AreEqual("abc", stringItem.Value); }
public void RemoveTest() { var doc = Doc.New(); doc = DictItem.Create(doc, out var dictID); var dict = doc.Item <DictItem>(dictID); doc = StringItem.Create(doc, out var stringID, "abc"); dict = doc.Item <DictItem>(dictID); doc = DictItem.Set(doc, dict, "Foo", stringID); dict = doc.Item <DictItem>(dictID); doc = DictItem.Remove(doc, "Foo", dict); dict = doc.Item <DictItem>(dictID); Assert.IsFalse(dict.ContainsKey("Foo")); }
public void UndoRedoTest() { var doc = Doc.New(); doc = StringItem.Create(doc, out var stringID, "abc"); doc = StringItem.Change(doc, doc.Item <StringItem>(stringID), "xyz"); doc = doc.Undo(); var stringItem = doc.Item <StringItem>(stringID); Assert.AreEqual("abc", stringItem.Value); doc = doc.Undo(); Assert.IsFalse(doc.HasItem(stringID)); doc = doc.Redo().Redo(); stringItem = doc.Item <StringItem>(stringID); Assert.AreEqual("xyz", stringItem.Value); Assert.IsFalse(doc.CanRedo); Assert.IsTrue(doc.CanUndo); }
public void UndoRedoTest() { var doc = Doc.New(); Assert.IsFalse(doc.CanRedo); Assert.IsFalse(doc.CanUndo); doc = DictItem.Create(doc, out var dictID); Assert.IsFalse(doc.CanRedo); Assert.IsTrue(doc.CanUndo); var dict = doc.Item <DictItem>(dictID); doc = doc.Undo(); Assert.IsTrue(doc.CanRedo); Assert.IsFalse(doc.CanUndo); Assert.IsFalse(doc.HasItem(dictID)); doc = doc.Redo(); Assert.IsFalse(doc.CanRedo); Assert.IsTrue(doc.CanUndo); dict = doc.Item <DictItem>(dictID); doc = StringItem.Create(doc, out var stringID, "abc"); doc = DictItem.Set(doc, dict, "Foo", stringID); var stringItem = doc.DictItem <StringItem>(dictID, "Foo"); Assert.AreEqual("abc", stringItem.Value); Assert.IsFalse(doc.CanRedo); Assert.IsTrue(doc.CanUndo); doc = doc.Undo(); dict = doc.Item <DictItem>(dictID); Assert.IsFalse(dict.ContainsKey("Foo")); doc = doc.Undo().Undo(); Assert.IsFalse(doc.HasItem(dictID)); doc = doc.Redo().Redo().Redo(); Assert.IsTrue(doc.HasItem(dictID)); dict = doc.Item <DictItem>(dictID); Assert.IsTrue(dict.ContainsKey("Foo")); stringItem = doc.DictItem <StringItem>(dictID, "Foo"); Assert.AreEqual("abc", stringItem.Value); }
public void SetTest() { var doc = Doc.New(); doc = DictItem.Create(doc, out var dictID); var dict = doc.Item <DictItem>(dictID); doc = StringItem.Create(doc, out var stringID, "abc"); doc = DictItem.Set(doc, dict, "Foo", stringID); var stringItem = doc.DictItem <StringItem>(dictID, "Foo"); Assert.AreEqual("abc", stringItem.Value); // Now change the string value and verify. doc = StringItem.Change(doc, stringItem, "xyz"); stringItem = doc.DictItem <StringItem>(dictID, "Foo"); Assert.AreEqual("xyz", stringItem.Value); // Now change the field entry and verify. doc = StringItem.Create(doc, out var newStringID, "pqr"); dict = doc.Item <DictItem>(dictID); doc = DictItem.Set(doc, NewID(), dict, "Foo", newStringID); var newStringItem = doc.DictItem <StringItem>(dictID, "Foo"); Assert.AreEqual("pqr", newStringItem.Value); }