public void TestRestoreSnapshotWithSubType() { var doc = new YDoc(new YDocOptions { Gc = false }); doc.GetArray("array").Insert(0, new[] { new YMap() }); var subMap = doc.GetArray("array").Get(0) as YMap; subMap.Set("key1", "value1"); var snap = doc.CreateSnapshot(); subMap.Set("key2", "value2"); var docRestored = snap.RestoreDocument(doc); var restoredSubMap = docRestored.GetArray("array").Get(0) as YMap; subMap = doc.GetArray("array").Get(0) as YMap; Assert.AreEqual(1, restoredSubMap.Count); Assert.AreEqual("value1", restoredSubMap.Get("key1")); Assert.AreEqual(2, subMap.Count); Assert.AreEqual("value1", subMap.Get("key1")); Assert.AreEqual("value2", subMap.Get("key2")); }
public void TestRestoreDeletedItem1() { var doc = new YDoc(new YDocOptions { Gc = false }); doc.GetArray("array").Insert(0, new[] { "item1", "item2" }); var snap = doc.CreateSnapshot(); doc.GetArray("array").Delete(0); var docRestored = snap.RestoreDocument(doc); CollectionAssert.AreEqual(new[] { "item1", "item2" }, (ICollection)docRestored.GetArray("array").ToArray()); CollectionAssert.AreEqual(new[] { "item2" }, (ICollection)doc.GetArray("array").ToArray()); }
public void TestBasicRestoreSnapshot() { var doc = new YDoc(new YDocOptions { Gc = false }); doc.GetArray("array").Insert(0, new[] { "hello" }); var snap = doc.CreateSnapshot(); doc.GetArray("array").Insert(1, new[] { "world" }); var docRestored = snap.RestoreDocument(doc); CollectionAssert.AreEqual(new[] { "hello" }, (ICollection)docRestored.GetArray("array").ToArray()); CollectionAssert.AreEqual(new[] { "hello", "world" }, (ICollection)doc.GetArray("array").ToArray()); }
public void TestRestoreLeftItem() { var doc = new YDoc(new YDocOptions { Gc = false }); doc.GetArray("array").Insert(0, new[] { "item1" }); doc.GetMap("map").Set("test", 1); doc.GetArray("array").Insert(0, new[] { "item0" }); var snap = doc.CreateSnapshot(); doc.GetArray("array").Delete(1); var docRestored = snap.RestoreDocument(doc); CollectionAssert.AreEqual(new[] { "item0", "item1" }, (ICollection)docRestored.GetArray("array").ToArray()); CollectionAssert.AreEqual(new[] { "item0" }, (ICollection)doc.GetArray("array").ToArray()); }
public void TestEmptyRestoreSnapshot() { var doc = new YDoc(new YDocOptions { Gc = false }); var snap = doc.CreateSnapshot(); snap.StateVector[9999] = 0; doc.GetArray().Insert(0, new[] { "world" }); var docRestored = snap.RestoreDocument(doc); Assert.AreEqual(0, docRestored.GetArray().ToArray().Count); CollectionAssert.AreEqual(new[] { "world" }, (ICollection)doc.GetArray().ToArray()); // Now this snapshot reflects the latest state. It should still work. var snap2 = doc.CreateSnapshot(); var docRestored2 = snap2.RestoreDocument(doc); CollectionAssert.AreEqual(new[] { "world" }, (ICollection)docRestored2.GetArray().ToArray()); }
public void TestClientIdDuplicateChange() { var doc1 = new YDoc(); doc1.ClientId = 0; var doc2 = new YDoc(); doc2.ClientId = 0; Assert.AreEqual(doc1.ClientId, doc2.ClientId); doc1.GetArray("a").Insert(0, new object[] { 1, 2 }); doc2.ApplyUpdateV2(doc1.EncodeStateAsUpdateV2()); Assert.AreNotEqual(doc1.ClientId, doc2.ClientId); }
public void TestBasicUpdate() { var doc1 = new YDoc(); var doc2 = new YDoc(); var content = new List <object> { "hi" }; doc1.GetArray("array").Insert(0, content); var update = doc1.EncodeStateAsUpdateV2(); doc2.ApplyUpdateV2(update); CollectionAssert.AreEqual(content, (ICollection)doc2.GetArray("array").ToArray()); }
public void TestIteratingArrayContainingTypes() { var y = new YDoc(); var arr = y.GetArray("arr"); const int numItems = 10; for (int i = 0; i < numItems; i++) { var map = new YMap(); map.Set("value", i); arr.Add(new[] { map }); } int cnt = 0; foreach (var item in arr) { Assert.AreEqual(cnt++, (item as YMap).Get("value")); } y.Destroy(); }