示例#1
0
        public void FormatterMappings_GetMediaTypeMappingForFormat_ThrowsForInvalidFormats(string format)
        {
            // Arrange
            var options = new FormatterMappings();

            // Act & Assert
            Assert.Throws <ArgumentException>("format", () => options.GetMediaTypeMappingForFormat(format));
        }
示例#2
0
        public void FormatterMappings_SetFormatMapping_FormatEmpty()
        {
            // Arrange
            var options = new FormatterMappings();
            var format  = "";

            // Act and Assert
            ExceptionAssert.ThrowsArgumentNullOrEmpty(
                () => options.SetMediaTypeMappingForFormat(
                    format,
                    MediaTypeHeaderValue.Parse("application/xml")),
                "format");
        }
示例#3
0
        public void FormatterMappings_SetFormatMapping_DiffSetGetFormat(string setFormat, string contentType, string getFormat)
        {
            // Arrange
            var options = new FormatterMappings();

            options.SetMediaTypeMappingForFormat(setFormat, MediaTypeHeaderValue.Parse(contentType));

            // Act
            var returnMediaType = options.GetMediaTypeMappingForFormat(getFormat);

            // Assert
            MediaTypeAssert.Equal(contentType, returnMediaType);
        }
示例#4
0
 public MvcOptions()
 {
     CacheProfiles = new Dictionary<string, CacheProfile>(StringComparer.OrdinalIgnoreCase);
     Conventions = new List<IApplicationModelConvention>();
     Filters = new FilterCollection();
     FormatterMappings = new FormatterMappings();
     InputFormatters = new FormatterCollection<IInputFormatter>();
     OutputFormatters = new FormatterCollection<IOutputFormatter>();
     ModelBinderProviders = new List<IModelBinderProvider>();
     ModelBindingMessageProvider = new ModelBindingMessageProvider();
     ModelMetadataDetailsProviders = new List<IMetadataDetailsProvider>();
     ModelValidatorProviders = new List<IModelValidatorProvider>();
     ValueProviderFactories = new List<IValueProviderFactory>();
 }
示例#5
0
        public void FormatterMappings_Wildcardformat(string format)
        {
            // Arrange
            var options  = new FormatterMappings();
            var expected = string.Format(@"The media type ""{0}"" is not valid. MediaTypes containing wildcards (*) " +
                                         "are not allowed in formatter mappings.", format);

            // Act and assert
            var exception = Assert.Throws <ArgumentException>(() => options.SetMediaTypeMappingForFormat(
                                                                  "star",
                                                                  MediaTypeHeaderValue.Parse(format)));

            Assert.Equal(expected, exception.Message);
        }
示例#6
0
        public void FormatterMappings_SetFormatMapping_FormatEmpty()
        {
            // Arrange
            var options  = new FormatterMappings();
            var format   = "";
            var expected = "Value cannot be null or empty." + Environment.NewLine + "Parameter name: format";

            // Act and assert
            var exception = Assert.Throws <ArgumentException>(() => options.SetMediaTypeMappingForFormat(
                                                                  format,
                                                                  MediaTypeHeaderValue.Parse("application/xml")));

            Assert.Equal(expected, exception.Message);
        }
示例#7
0
        public void FormatterMappings_Wildcardformat(string format)
        {
            // Arrange
            var options  = new FormatterMappings();
            var expected = $@"The media type ""{format}"" is not valid. MediaTypes containing wildcards (*) " +
                           "are not allowed in formatter mappings.";

            // Act and assert
            ExceptionAssert.ThrowsArgument(
                () => options.SetMediaTypeMappingForFormat(
                    "star",
                    MediaTypeHeaderValue.Parse(format)),
                "contentType",
                expected);
        }
示例#8
0
        public void FormatterMappings_Invalid_Period()
        {
            // Arrange
            var options  = new FormatterMappings();
            var format   = ".";
            var expected = string.Format(@"The format provided is invalid '{0}'. A format must be a non-empty file-" +
                                         "extension, optionally prefixed with a '.' character.", format);

            // Act and assert
            var exception = Assert.Throws <ArgumentException>(() => options.SetMediaTypeMappingForFormat(
                                                                  format,
                                                                  MediaTypeHeaderValue.Parse("application/xml")));

            Assert.Equal(expected, exception.Message);
        }
示例#9
0
        public void FormatterMappings_Invalid_Period()
        {
            // Arrange
            var options  = new FormatterMappings();
            var format   = ".";
            var expected = $"The format provided is invalid '{format}'. A format must be a non-empty file-" +
                           "extension, optionally prefixed with a '.' character.";

            // Act and assert
            ExceptionAssert.ThrowsArgument(
                () => options.SetMediaTypeMappingForFormat(
                    format,
                    MediaTypeHeaderValue.Parse("application/xml")),
                "format",
                expected);
        }
示例#10
0
        public void FormatterMappings_ClearFormatMapping(string format, bool expected)
        {
            // Arrange
            var options   = new FormatterMappings();
            var mediaType = MediaTypeHeaderValue.Parse("application/xml");

            options.SetMediaTypeMappingForFormat("xml", mediaType);
            mediaType = MediaTypeHeaderValue.Parse("application/json");
            options.SetMediaTypeMappingForFormat("json", mediaType);
            mediaType = MediaTypeHeaderValue.Parse("application/foo");
            options.SetMediaTypeMappingForFormat("foo", mediaType);
            mediaType = MediaTypeHeaderValue.Parse("application/bar");
            options.SetMediaTypeMappingForFormat("bar", mediaType);

            // Act
            var cleared = options.ClearMediaTypeMappingForFormat(format);

            // Assert
            Assert.Equal(expected, cleared);
            Assert.Null(options.GetMediaTypeMappingForFormat(format));
        }