コード例 #1
0
        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);
                }
            }
        }
コード例 #2
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);
        }
コード例 #3
0
        public void AddInstanceShouldGetValidatorsFromProviderEmpty()
        {
            ValidatableViewModel viewModel = GetValidatableViewModel();
            var instance = new object();

            viewModel.AddInstance(instance);
            viewModel.GetValidators().Where(validator => validator != viewModel.Validator).ShouldBeEmpty();
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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();
        }