public void UpdatesMappedValidationAfterChangingMappedViewModelProperty()
        {
            var vm = new TestViewModelWithMappings(new Person());

            vm.DeferValidationUntilFirstSaveCallWrapper = false;

            vm.FirstNameAsTwoWay = "John";
            vm.LastName          = "Doe";

            Assert.IsFalse(vm.HasErrors);
        }
예제 #2
0
        public void ViewModelWithViewModelToModelMappings_Explicit_InitiatedFromViewModel()
        {
            var person    = new Person();
            var viewModel = new TestViewModelWithMappings(person);

            Assert.AreEqual(string.Empty, person.FirstName);
            Assert.AreEqual(person.FirstName, viewModel.FirstNameAsExplicit);

            viewModel.FirstNameAsExplicit = "geert";

            // When initiated from VM => nothing should change
            Assert.AreEqual("geert", viewModel.FirstNameAsExplicit);
            Assert.AreNotEqual(person.FirstName, viewModel.FirstNameAsExplicit);
        }
예제 #3
0
        public void ViewModelWithViewModelToModelMappings_OneWayToSource_InitiatedFromViewModel()
        {
            var person    = new Person();
            var viewModel = new TestViewModelWithMappings(person);

            Assert.AreEqual(string.Empty, person.FirstName);
            Assert.AreEqual(person.FirstName, viewModel.FirstNameAsOneWayToSource);

            viewModel.FirstNameAsOneWayToSource = "geert";

            // Both must have changed
            Assert.AreEqual("geert", viewModel.FirstNameAsOneWayToSource);
            Assert.AreEqual(person.FirstName, viewModel.FirstNameAsOneWayToSource);
        }
예제 #4
0
        public void ViewModelWithViewModelToModelMappings_Explicit_InitiatedManually()
        {
            var person    = new Person();
            var viewModel = new TestViewModelWithMappings(person);

            Assert.AreEqual(string.Empty, person.FirstName);
            Assert.AreEqual(person.FirstName, viewModel.FirstNameAsExplicit);

            viewModel.FirstNameAsExplicit = "geert";
            viewModel.UpdateExplicitMappings();

            // Both must have changed
            Assert.AreEqual("geert", viewModel.FirstNameAsExplicit);
            Assert.AreEqual(person.FirstName, viewModel.FirstNameAsExplicit);
        }
예제 #5
0
        public void Exposes_Validation_For_Validated_Model()
        {
            // Test case for https://github.com/Catel/Catel/issues/1615

            var model = new Person();

            model.Validate();

            Assert.IsTrue(model.HasErrors);

            var vm = new TestViewModelWithMappings(model);

            vm.DeferValidationUntilFirstSaveCallWrapper = false;

            Assert.IsTrue(vm.HasErrors);

            vm.FirstNameAsTwoWay = "John";
            vm.LastName          = "Doe";

            Assert.IsFalse(vm.HasErrors);
        }