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); }
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); }
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); }
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]); }
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]); }