Пример #1
0
        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);
        }
Пример #2
0
        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);
        }