public async Task SaveAfterCloseProtection() { var auditor = new TestAuditor(); AuditingManager.RegisterAuditor(auditor); var vm = new TestViewModel(); Assert.AreEqual(false, auditor.OnViewModelSavedCalled); Assert.AreEqual(false, auditor.OnViewModelClosedCalled); await vm.SaveAndCloseViewModelAsync(); Assert.AreEqual(true, auditor.OnViewModelSavedCalled); Assert.AreEqual(true, auditor.OnViewModelClosedCalled); auditor.OnViewModelSavedCalled = false; auditor.OnViewModelClosedCalled = false; await vm.SaveAndCloseViewModelAsync(); Assert.AreEqual(false, auditor.OnViewModelSavedCalled); Assert.AreEqual(false, auditor.OnViewModelClosedCalled); }
public async Task ProtectPropertiesAfterClosingAsync() { var vm = new TestViewModel(); var freezable = (IFreezable)vm; await vm.InitializeViewModelAsync(); vm.FirstName = "John"; Assert.AreEqual("John", vm.FirstName); Assert.IsFalse(freezable.IsFrozen); await vm.SaveAndCloseViewModelAsync(); vm.FirstName = "Jane"; Assert.AreEqual("John", vm.FirstName); Assert.IsTrue(freezable.IsFrozen); await vm.InitializeViewModelAsync(); vm.FirstName = "Jane"; Assert.AreEqual("Jane", vm.FirstName); Assert.IsFalse(freezable.IsFrozen); }