public async Task UnlinkSharedFileKeepSharedData() { // Two different models for same file. One is loaded and modified. // The other is not loaded. Unlinking the modified should assign // data to unloaded model. 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 <TextFileModel> (filePath); Assert.IsFalse(file2.IsLoaded); await file.ConvertToUnsaved(); // Unsaved file content should have been migrated to second file await file2.Load(); Assert.AreEqual("Foo", file2.GetText()); }
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); }