Ejemplo n.º 1
0
        public void Setup_SetsUpModelValidatorProviders()
        {
            // Arrange
            var mvcOptions = new MvcOptions();
            var setup1     = new CoreMvcOptionsSetup();
            var setup2     = new MvcOptionsSetup();

            // Act
            setup1.Configure(mvcOptions);
            setup2.Configure(mvcOptions);

            // Assert
            Assert.Equal(2, mvcOptions.ModelValidatorProviders.Count);
            Assert.IsType <DefaultModelValidatorProvider>(mvcOptions.ModelValidatorProviders[0]);
            Assert.IsType <DataAnnotationsModelValidatorProvider>(mvcOptions.ModelValidatorProviders[1]);
        }
Ejemplo n.º 2
0
        public void Setup_SetsUpOutputFormatters()
        {
            // Arrange
            var mvcOptions = new MvcOptions();
            var setup      = new MvcOptionsSetup();

            // Act
            setup.Configure(mvcOptions);

            // Assert
            Assert.Equal(4, mvcOptions.OutputFormatters.Count);
            Assert.IsType <HttpNoContentOutputFormatter>(mvcOptions.OutputFormatters[0].Instance);
            Assert.IsType <TextPlainFormatter>(mvcOptions.OutputFormatters[1].Instance);
            Assert.IsType <JsonOutputFormatter>(mvcOptions.OutputFormatters[2].Instance);
            Assert.IsType <XmlDataContractSerializerOutputFormatter>(mvcOptions.OutputFormatters[3].Instance);
        }
Ejemplo n.º 3
0
        public void Setup_SetsUpValueProviders()
        {
            // Arrange
            var mvcOptions = new MvcOptions();
            var setup      = new MvcOptionsSetup();

            // Act
            setup.Configure(mvcOptions);

            // Assert
            var valueProviders = mvcOptions.ValueProviderFactories;

            Assert.Equal(3, valueProviders.Count);
            Assert.IsType <RouteValueValueProviderFactory>(valueProviders[0].Instance);
            Assert.IsType <QueryStringValueProviderFactory>(valueProviders[1].Instance);
            Assert.IsType <FormValueProviderFactory>(valueProviders[2].Instance);
        }
Ejemplo n.º 4
0
        public void Setup_SetsUpModelBinders()
        {
            // Arrange
            var mvcOptions = new MvcOptions();
            var setup      = new MvcOptionsSetup();

            // Act
            setup.Setup(mvcOptions);

            // Assert
            Assert.Equal(5, mvcOptions.ModelBinders.Count);
            Assert.Equal(typeof(TypeConverterModelBinder), mvcOptions.ModelBinders[0].OptionType);
            Assert.Equal(typeof(TypeMatchModelBinder), mvcOptions.ModelBinders[1].OptionType);
            Assert.Equal(typeof(GenericModelBinder), mvcOptions.ModelBinders[2].OptionType);
            Assert.Equal(typeof(MutableObjectModelBinder), mvcOptions.ModelBinders[3].OptionType);
            Assert.Equal(typeof(ComplexModelDtoModelBinder), mvcOptions.ModelBinders[4].OptionType);
        }
Ejemplo n.º 5
0
        public void Setup_SetsUpInputFormatters()
        {
            // Arrange
            var mvcOptions = new MvcOptions();
            var setup1     = new CoreMvcOptionsSetup();
            var setup2     = new MvcOptionsSetup();
            var setup3     = new JsonMvcOptionsSetup(new OptionsManager <MvcJsonOptions>(
                                                         Enumerable.Empty <IConfigureOptions <MvcJsonOptions> >()));

            // Act
            setup1.Configure(mvcOptions);
            setup2.Configure(mvcOptions);
            setup3.Configure(mvcOptions);

            // Assert
            Assert.Equal(2, mvcOptions.InputFormatters.Count);
            Assert.IsType <JsonInputFormatter>(mvcOptions.InputFormatters[0]);
            Assert.IsType <JsonPatchInputFormatter>(mvcOptions.InputFormatters[1]);
        }
Ejemplo n.º 6
0
        public void Setup_SetsUpModelBinders()
        {
            // Arrange
            var mvcOptions = new MvcOptions();
            var setup      = new MvcOptionsSetup();

            // Act
            setup.Configure(mvcOptions);

            // Assert
            Assert.Equal(8, mvcOptions.ModelBinders.Count);
            Assert.Equal(typeof(BodyModelBinder), mvcOptions.ModelBinders[0].OptionType);
            Assert.Equal(typeof(TypeConverterModelBinder), mvcOptions.ModelBinders[1].OptionType);
            Assert.Equal(typeof(TypeMatchModelBinder), mvcOptions.ModelBinders[2].OptionType);
            Assert.Equal(typeof(CancellationTokenModelBinder), mvcOptions.ModelBinders[3].OptionType);
            Assert.Equal(typeof(ByteArrayModelBinder), mvcOptions.ModelBinders[4].OptionType);
            Assert.Equal(typeof(GenericModelBinder), mvcOptions.ModelBinders[5].OptionType);
            Assert.Equal(typeof(MutableObjectModelBinder), mvcOptions.ModelBinders[6].OptionType);
            Assert.Equal(typeof(ComplexModelDtoModelBinder), mvcOptions.ModelBinders[7].OptionType);
        }
Ejemplo n.º 7
0
        public void Setup_SetsUpOutputFormatters()
        {
            // Arrange
            var mvcOptions = new MvcOptions();
            var setup1     = new CoreMvcOptionsSetup();
            var setup2     = new MvcOptionsSetup();
            var setup3     = new JsonMvcOptionsSetup(new OptionsManager <MvcJsonOptions>(
                                                         Enumerable.Empty <IConfigureOptions <MvcJsonOptions> >()));

            // Act
            setup1.Configure(mvcOptions);
            setup2.Configure(mvcOptions);
            setup3.Configure(mvcOptions);

            // Assert
            Assert.Equal(4, mvcOptions.OutputFormatters.Count);
            Assert.IsType <HttpNoContentOutputFormatter>(mvcOptions.OutputFormatters[0]);
            Assert.IsType <StringOutputFormatter>(mvcOptions.OutputFormatters[1]);
            Assert.IsType <StreamOutputFormatter>(mvcOptions.OutputFormatters[2]);
            Assert.IsType <JsonOutputFormatter>(mvcOptions.OutputFormatters[3]);
        }
Ejemplo n.º 8
0
        public void Setup_SetsUpExcludeFromValidationDelegates()
        {
            // Arrange
            var mvcOptions = new MvcOptions();
            var setup      = new MvcOptionsSetup();

            // Act
            setup.Configure(mvcOptions);

            // Assert
            Assert.Equal(5, mvcOptions.ValidationExcludeFilters.Count);

            // Verify if the delegates registered by default exclude the given types.
            Assert.Equal(typeof(SimpleTypesExcludeFilter), mvcOptions.ValidationExcludeFilters[0].OptionType);
            Assert.Equal(typeof(DefaultTypeBasedExcludeFilter), mvcOptions.ValidationExcludeFilters[1].OptionType);
            var xObjectFilter
                = Assert.IsType <DefaultTypeBasedExcludeFilter>(mvcOptions.ValidationExcludeFilters[1].Instance);

            Assert.Equal(xObjectFilter.ExcludedType, typeof(XObject));

            Assert.Equal(typeof(DefaultTypeBasedExcludeFilter), mvcOptions.ValidationExcludeFilters[2].OptionType);
            var typeFilter =
                Assert.IsType <DefaultTypeBasedExcludeFilter>(mvcOptions.ValidationExcludeFilters[2].Instance);

            Assert.Equal(typeFilter.ExcludedType, typeof(Type));

            Assert.Equal(typeof(DefaultTypeBasedExcludeFilter), mvcOptions.ValidationExcludeFilters[3].OptionType);
            var jTokenFilter
                = Assert.IsType <DefaultTypeBasedExcludeFilter>(mvcOptions.ValidationExcludeFilters[3].Instance);

            Assert.Equal(jTokenFilter.ExcludedType, typeof(JToken));

            Assert.Equal(typeof(DefaultTypeNameBasedExcludeFilter), mvcOptions.ValidationExcludeFilters[4].OptionType);
            var xmlNodeFilter =
                Assert.IsType <DefaultTypeNameBasedExcludeFilter>(mvcOptions.ValidationExcludeFilters[4].Instance);

            Assert.Equal(xmlNodeFilter.ExcludedTypeName, "System.Xml.XmlNode");
        }
Ejemplo n.º 9
0
        public void Setup_JsonFormattersUseSerializerSettings()
        {
            // Arrange
            var mvcOptions = new MvcOptions();
            var setup      = new MvcOptionsSetup();

            // Act
            setup.Configure(mvcOptions);

            // Assert
            var jsonInputFormatters = mvcOptions.InputFormatters.OfType <JsonInputFormatter>();

            foreach (var jsonInputFormatter in jsonInputFormatters)
            {
                Assert.Same(mvcOptions.SerializerSettings, jsonInputFormatter.SerializerSettings);
            }

            var jsonOuputFormatters = mvcOptions.OutputFormatters.OfType <JsonOutputFormatter>();

            foreach (var jsonOuputFormatter in jsonOuputFormatters)
            {
                Assert.Same(mvcOptions.SerializerSettings, jsonOuputFormatter.SerializerSettings);
            }
        }
Ejemplo n.º 10
0
        public void Setup_SetsUpExcludeFromValidationDelegates()
        {
            // Arrange
            var mvcOptions = new MvcOptions();
            var setup1     = new CoreMvcOptionsSetup();
            var setup2     = new MvcOptionsSetup();

            // Act
            setup1.Configure(mvcOptions);
            setup2.Configure(mvcOptions);

            // Assert
            Assert.Equal(8, mvcOptions.ValidationExcludeFilters.Count);
            var i = 0;

            // Verify if the delegates registered by default exclude the given types.
            Assert.IsType(typeof(SimpleTypesExcludeFilter), mvcOptions.ValidationExcludeFilters[i++]);

            Assert.IsType(typeof(DefaultTypeBasedExcludeFilter), mvcOptions.ValidationExcludeFilters[i]);
            var typeFilter
                = Assert.IsType <DefaultTypeBasedExcludeFilter>(mvcOptions.ValidationExcludeFilters[i++]);

            Assert.Equal(typeFilter.ExcludedType, typeof(Type));

            Assert.IsType(typeof(DefaultTypeBasedExcludeFilter), mvcOptions.ValidationExcludeFilters[i]);
            var cancellationTokenFilter
                = Assert.IsType <DefaultTypeBasedExcludeFilter>(mvcOptions.ValidationExcludeFilters[i++]);

            Assert.Equal(cancellationTokenFilter.ExcludedType, typeof(System.Threading.CancellationToken));

            Assert.IsType(typeof(DefaultTypeBasedExcludeFilter), mvcOptions.ValidationExcludeFilters[i]);
            var formFileFilter
                = Assert.IsType <DefaultTypeBasedExcludeFilter>(mvcOptions.ValidationExcludeFilters[i++]);

            Assert.Equal(formFileFilter.ExcludedType, typeof(Http.IFormFile));

            Assert.IsType(
                typeof(DefaultTypeBasedExcludeFilter),
                mvcOptions.ValidationExcludeFilters[i]);
            var formCollectionFilter
                = Assert.IsType <DefaultTypeBasedExcludeFilter>(mvcOptions.ValidationExcludeFilters[i++]);

            Assert.Equal(formCollectionFilter.ExcludedType, typeof(Http.IFormCollection));

            Assert.IsType(typeof(DefaultTypeBasedExcludeFilter), mvcOptions.ValidationExcludeFilters[i]);
            var xObjectFilter
                = Assert.IsType <DefaultTypeBasedExcludeFilter>(mvcOptions.ValidationExcludeFilters[i++]);

            Assert.Equal(xObjectFilter.ExcludedType, typeof(XObject));

            Assert.IsType(typeof(DefaultTypeBasedExcludeFilter), mvcOptions.ValidationExcludeFilters[i]);
            var jTokenFilter
                = Assert.IsType <DefaultTypeBasedExcludeFilter>(mvcOptions.ValidationExcludeFilters[i++]);

            Assert.Equal(jTokenFilter.ExcludedType, typeof(JToken));

            Assert.IsType(typeof(DefaultTypeNameBasedExcludeFilter), mvcOptions.ValidationExcludeFilters[i]);
            var xmlNodeFilter =
                Assert.IsType <DefaultTypeNameBasedExcludeFilter>(mvcOptions.ValidationExcludeFilters[i++]);

            Assert.Equal(xmlNodeFilter.ExcludedTypeName, "System.Xml.XmlNode");
        }