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 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 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); }