public async Task CancelAfterCloseProtection() { var auditor = new TestAuditor(); AuditingManager.RegisterAuditor(auditor); var vm = new TestViewModel(); Assert.AreEqual(false, auditor.OnViewModelCanceledCalled); Assert.AreEqual(false, auditor.OnViewModelClosedCalled); await vm.CancelAndCloseViewModelAsync(); Assert.AreEqual(true, auditor.OnViewModelCanceledCalled); Assert.AreEqual(true, auditor.OnViewModelClosedCalled); auditor.OnViewModelCanceledCalled = false; auditor.OnViewModelClosedCalled = false; await vm.CancelAndCloseViewModelAsync(); Assert.AreEqual(false, auditor.OnViewModelCanceledCalled); Assert.AreEqual(false, auditor.OnViewModelClosedCalled); }