示例#1
0
        public void GetValidators_should_return_validators_from_first_provider()
        {
            var validator1 = new Mock <ModelValidator>(CreateModelMetadata(), new Mock <ControllerContext>().Object);
            var validator2 = new Mock <ModelValidator>(CreateModelMetadata(), new Mock <ControllerContext>().Object);

            provider1.Setup(p => p.GetValidators(It.IsAny <System.Web.Mvc.ModelMetadata>(), It.IsAny <ControllerContext>())).Returns(new[] { validator1.Object });
            provider2.Setup(p => p.GetValidators(It.IsAny <System.Web.Mvc.ModelMetadata>(), It.IsAny <ControllerContext>())).Returns(new[] { validator2.Object });

            var validators = compositeProvider.GetValidators(CreateModelMetadata(), new Mock <ControllerContext>().Object);

            Assert.Contains(validator1.Object, validators);
            Assert.DoesNotContain(validator2.Object, validators);
        }
        public void GetModelValidators_ReturnsValidatorsFromAllProviders()
        {
            // Arrange
            var validator1 = Mock.Of <IModelValidator>();
            var validator2 = Mock.Of <IModelValidator>();
            var validator3 = Mock.Of <IModelValidator>();
            var provider1  = new Mock <IModelValidatorProvider>();

            provider1.Setup(p => p.GetValidators(It.IsAny <ModelMetadata>()))
            .Returns(new[] { validator1, validator2 });
            var provider2 = new Mock <IModelValidatorProvider>();

            provider2.Setup(p => p.GetValidators(It.IsAny <ModelMetadata>()))
            .Returns(new[] { validator3 });
            var providerProvider = new Mock <IModelValidatorProviderProvider>();

            providerProvider.Setup(p => p.ModelValidatorProviders)
            .Returns(new[] { provider1.Object, provider2.Object });
            var compositeModelValidator = new CompositeModelValidatorProvider(providerProvider.Object);
            var modelMetadata           = new EmptyModelMetadataProvider().GetMetadataForType(
                modelAccessor: null,
                modelType: typeof(string));

            // Act
            var result = compositeModelValidator.GetValidators(modelMetadata);

            // Assert
            Assert.Equal(new[] { validator1, validator2, validator3 }, result);
        }