public void ValidateInstanceShouldValidateOnlyInstance() { ValidatableViewModel viewModel = GetValidatableViewModel(); ValidatorProvider.Register <SpyValidator>(); var instance = new object(); var instance2 = new object(); viewModel.AddInstance(instance); viewModel.AddInstance(instance2); viewModel.AddValidator <SpyValidator>(instance); viewModel.GetValidators().Count.ShouldEqual(4); viewModel.GetValidators().OfType <SpyValidator>().ForEach(validator => validator.ValidateAllCount = 0); viewModel.ValidateInstanceAsync(instance); foreach (SpyValidator result in viewModel.GetValidators().OfType <SpyValidator>()) { if (result.Context.Instance == instance) { result.ValidateAllCount.ShouldEqual(1); } else { result.ValidateAllCount.ShouldEqual(0); } } }
public void RemoveInstanceShouldRemoveAllValidatorsAssociatedWithInstance() { ValidatableViewModel viewModel = GetValidatableViewModel(); ValidatorProvider.Register <SpyValidator>(); var instance = new object(); var instance2 = new object(); viewModel.AddInstance(instance); viewModel.AddInstance(instance2); viewModel.AddValidator <ManualValidator>(instance); viewModel.GetValidators().Count.ShouldEqual(4); viewModel.RemoveInstance(instance); viewModel.GetValidators().Single(validator => validator != viewModel.Validator).Context.Instance.ShouldEqual(instance2); }
public void AddInstanceShouldGetValidatorsFromProviderEmpty() { ValidatableViewModel viewModel = GetValidatableViewModel(); var instance = new object(); viewModel.AddInstance(instance); viewModel.GetValidators().Where(validator => validator != viewModel.Validator).ShouldBeEmpty(); }
public void AddInstanceShouldGetValidatorsFromProviderNotEmpty() { ValidatableViewModel viewModel = GetValidatableViewModel(); ValidatorProvider.Register <SpyValidator>(); var instance = new object(); viewModel.AddInstance(instance); viewModel.GetValidators().Single(validator => validator != viewModel.Validator) .Context .Instance .ShouldEqual(instance); }
public void ValidateAllShouldRedirectCallToValidators() { const int count = 10; ValidatableViewModel viewModel = GetValidatableViewModel(); ValidatorProvider.Register <SpyValidator>(); for (int i = 0; i < count; i++) { viewModel.AddInstance(new object()); } viewModel.GetValidators().Count.ShouldEqual(count + 1); viewModel.GetValidators().OfType <SpyValidator>().All(validator => validator.ValidateAllCount == 1).ShouldBeTrue(); }