コード例 #1
0
        public void VerifySetupValidationResults()
        {
            var expectedErrors = ValidatorSetups
                                 .Where(x => !x.Result.IsValid)
                                 .SelectMany(x => x.Result.Errors)
                                 .ToArray();

            ValidationAssert.Errors(expectedErrors);



            // TODO: Check if this logic is correct for collection expectations.

            var validViewModelPropertyCombinations = ActualInvocations
                                                     .Where(x => x.TargetVM != null)
                                                     .GroupBy(x => new { VM = x.TargetVM, Prop = x.TargetProperty })
                                                     .Where(g =>
                                                            !ValidatorSetups
                                                            .Select(x => new { VM = x.Invocation.TargetVM, Prop = x.Invocation.TargetProperty })
                                                            .Contains(g.Key)
                                                            );

            foreach (var item in validViewModelPropertyCombinations)
            {
                var target         = item.Key.VM;
                var targetProperty = item.Key.Prop;

                if (targetProperty != null)
                {
                    ValidationAssert.IsValid(target, targetProperty);
                }
                else
                {
                    ValidationAssert.ValidViewModelValidationResultIsValid(target);
                }
            }

            var validSetup = ValidatorSetups.Where(x => x.Result.IsValid);

            foreach (var setup in validSetup)
            {
                var target         = setup.Invocation.TargetVM;
                var targetProperty = setup.Invocation.TargetProperty;

                if (targetProperty != null)
                {
                    ValidationAssert.IsValid(target, targetProperty);
                }
                else
                {
                    ValidationAssert.ValidViewModelValidationResultIsValid(target);
                }
            }
        }
コード例 #2
0
        protected virtual void PerformValidation(
            Action <string> addValidationErrorAction,
            ValidatorType type,
            IViewModel owner,
            IViewModel targetVM,
            object validatorKey,
            IVMPropertyDescriptor targetProperty = null
            )
        {
            var invocation = new ValidatorInvocation(type, owner, targetVM, null, targetProperty, validatorKey);

            var errors = ValidatorSetups
                         .Where(x => x.Invocation.Equals(invocation))
                         .SelectMany(x => x.Result.Errors);

            errors.ForEach(x => addValidationErrorAction(x.Message));

            ActualInvocations.Add(
                new ValidatorInvocation(type, owner, targetVM, null, targetProperty, validatorKey)
                );
        }
コード例 #3
0
        protected virtual void PerformCollectionValidation <TItemVM>(
            Action <TItemVM, string, object> addValidationErrorAction,
            ValidatorType type,
            IViewModel owner,
            IVMCollectionBase <TItemVM> targetCollection,
            object validatorKey,
            IVMPropertyDescriptor targetProperty = null
            ) where TItemVM : IViewModel
        {
            foreach (TItemVM item in targetCollection)
            {
                var invocation = new ValidatorInvocation(type, owner, item, null, targetProperty, validatorKey);

                var errors = ValidatorSetups
                             .Where(x => x.Invocation.Equals(invocation))
                             .SelectMany(x => x.Result.Errors);

                errors.ForEach(x => addValidationErrorAction(item, x.Message, x.Details));
            }

            ActualInvocations.Add(
                new ValidatorInvocation(type, owner, null, targetCollection, targetProperty, validatorKey)
                );
        }
コード例 #4
0
 protected void SetupSucceedingValidator(ValidatorInvocation forInvocation)
 {
     ValidatorSetups.Add(ValidatorResultSetup.Succeeding(forInvocation));
 }
コード例 #5
0
 protected void SetupFailingValidator(ValidatorInvocation forInvocation, string errorDetails)
 {
     ValidatorSetups.Add(ValidatorResultSetup.Failing(forInvocation, errorDetails));
 }