public async Task UnlinkSharedFile() { FilePath filePath = "test.txt"; var file = new CustomFileModel(); file.CreateNew(); file.SetText("Foo"); await file.LinkToFile(filePath); await registry.ShareModel(file); Assert.AreEqual(1, CustomFileModel.LiveBackends); var file2 = await registry.GetSharedModel <CustomFileModel> (filePath); await file2.Load(); Assert.AreEqual(1, CustomFileModel.LiveBackends); Assert.AreEqual("Foo", file2.GetText()); await file.ConvertToUnsaved(); Assert.AreEqual(2, CustomFileModel.LiveBackends); Assert.IsNull(file.Id); file.SetText("Bar"); Assert.AreEqual("Foo", file2.GetText()); file.Dispose(); Assert.AreEqual(1, CustomFileModel.LiveBackends); file2.Dispose(); Assert.AreEqual(0, CustomFileModel.LiveBackends); }
public async Task RegisterNew() { FilePath filePath = "test.txt"; CustomFileModel.LiveBackends = 0; var file = new CustomFileModel(); file.CreateNew(); file.SetText("Foo"); await file.LinkToFile(filePath); Assert.AreEqual(1, CustomFileModel.LiveBackends); await registry.ShareModel(file); Assert.AreEqual(1, CustomFileModel.LiveBackends); var otherFile = await registry.GetSharedModel <CustomFileModel> (filePath); Assert.AreNotSame(file, otherFile); Assert.IsFalse(otherFile.IsLoaded); Assert.AreEqual(1, CustomFileModel.LiveBackends); await otherFile.Load(); Assert.AreEqual("Foo", otherFile.GetText()); Assert.AreEqual(1, CustomFileModel.LiveBackends); // Backend is shared file.SetText("Bar"); Assert.AreEqual("Bar", otherFile.GetText()); otherFile.SetText("Bar2"); Assert.AreEqual("Bar2", file.GetText()); file.Dispose(); Assert.AreEqual(1, CustomFileModel.LiveBackends); otherFile.Dispose(); Assert.AreEqual(0, CustomFileModel.LiveBackends); }