Example #1
0
        public void SelectedItem_WhenNonExistingItemIsInitiallySelected_IsInvalid()
        {
            var vm = CreateUserVM(
                allDepartments: new[] { Department1 },
                selectedDepartment: Department2
                );

            ValidationAssert.IsValid(vm);

            vm.Department.Load(x => x.SelectedItem);
            ValidationAssert.IsInvalid(vm);
        }
Example #2
0
        public void PropertyValidation_WhenConditionIsFalse_IsNotExecuted()
        {
            bool condition = true;

            EmployeeVM vm = CreateVM(b => b
                                     .When(args => condition)
                                     .Check(x => x.Name)
                                     .Custom(args => args.AddError("Test error"))
                                     );

            vm.Revalidate(ValidationScope.SelfAndAllDescendants);

            ValidationAssert.IsInvalid(vm);

            condition = false;
            vm.Revalidate(ValidationScope.SelfAndAllDescendants);

            ValidationAssert.IsValid(vm);
        }
Example #3
0
        public void ViewModelCollectionValidation_WhenItemConditionIsFalse_IsNotExecuted()
        {
            ProjectVM project1 = new ProjectVM();
            ProjectVM project2 = new ProjectVM();

            EmployeeVM vm = CreateVM(b => b
                                     .ValidateDescendant(x => x.Projects)
                                     .When(args => args.Target == project2)
                                     .CheckViewModel(args => args.AddError("Test error"))
                                     );

            vm.Projects.Add(project1);
            vm.Projects.Add(project2);

            vm.Revalidate(ValidationScope.SelfAndAllDescendants);

            ValidationAssert.IsValid(project1);
            ValidationAssert.IsInvalid(project2);
        }
Example #4
0
        public void SetIsSelectedProperty_WhenSelectedItemGetsInvalid_CorrectlyUpdatesIsSelectedOfAllItems()
        {
            var vm = CreateUserVM(
                allDepartments: new[] { Department1, Department2 },
                selectedDepartment: DepartmentNotInSource
                );

            vm.Department.Load(x => x.SelectedItem);
            ValidationAssert.IsInvalid(vm);

            Department[] areSelected = vm
                                       .Department
                                       .AllItems
                                       .Where(x => x.IsSelected)
                                       .Select(x => x.Source)
                                       .ToArray();

            CollectionAssert.AreEquivalent(new[] { DepartmentNotInSource }, areSelected);

            vm.Department.SelectedItem = vm
                                         .Department
                                         .AllItems
                                         .Single(x => x.Source == Department1);

            vm
            .Department
            .AllItems
            .Where(x => x.Source == DepartmentNotInSource)
            .Single()
            .IsSelected = true;

            areSelected = vm
                          .Department
                          .AllItems
                          .Where(x => x.IsSelected)
                          .Select(x => x.Source)
                          .ToArray();

            Assert.AreEqual(1, areSelected.Length);
            Assert.AreEqual(DepartmentNotInSource, areSelected[0]);
        }
Example #5
0
        public void SetIsSelected_ToItemWhichCausesSelectedItemToGetInvalidAndBackToPreviousItem_CorrectlyUpdatesIsSelectedOfAllItems()
        {
            var vm = CreateUserVM(
                allDepartments: new[] { Department1, Department2 },
                selectedDepartment: DepartmentNotInSource
                );

            vm.Department.Load(x => x.SelectedItem);
            ValidationAssert.IsInvalid(vm);

            vm.Department.SelectedItem = vm
                                         .Department
                                         .AllItems
                                         .Single(x => x.Source == Department1);

            vm.Department.SelectedItem = vm
                                         .Department
                                         .AllItems
                                         .Single(x => x.Source == DepartmentNotInSource);

            vm
            .Department
            .AllItems
            .Where(x => x.Source == Department1)
            .Single()
            .IsSelected = true;

            Department[] areSelected = vm
                                       .Department
                                       .AllItems
                                       .Where(x => x.IsSelected)
                                       .Select(x => x.Source)
                                       .ToArray();

            Assert.AreEqual(1, areSelected.Length);
            Assert.AreEqual(Department1, areSelected[0]);
        }