示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }
示例#4
0
        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"));
        }
示例#5
0
        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);
        }
示例#6
0
        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);
        }
示例#7
0
        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);
        }