public void SelectResponseMediaTypeMatchesWithMediaTypeMapping(MediaTypeWithQualityHeaderValue mediaRangeWithQuality) { MockMediaTypeFormatter formatter = new MockMediaTypeFormatter() { CallBase = true }; MediaTypeHeaderValue mediaRangeWithoutQuality = new MediaTypeHeaderValue(mediaRangeWithQuality.MediaType); MediaTypeHeaderValue mediaType = new MediaTypeHeaderValue("application/xml"); MediaRangeMapping mapping = new MediaRangeMapping(mediaRangeWithoutQuality, mediaType); formatter.MediaTypeMappings.Add(mapping); HttpRequestMessage request = new HttpRequestMessage(); request.Headers.Accept.Add(mediaRangeWithQuality); ResponseMediaTypeMatch match = formatter.SelectResponseMediaType(typeof(string), request); Assert.NotNull(match); Assert.Equal(ResponseFormatterSelectionResult.MatchOnRequestWithMediaTypeMapping, match.ResponseFormatterSelectionResult); double quality = mediaRangeWithQuality.Quality.Value; Assert.Equal(quality, match.MediaTypeMatch.Quality); Assert.NotNull(match.MediaTypeMatch.MediaType); Assert.Equal(mediaType.MediaType, match.MediaTypeMatch.MediaType.MediaType); }
public void SelectResponseMediaTypeMatchesRequestContentType(MediaTypeHeaderValue mediaType) { MockMediaTypeFormatter formatter = new MockMediaTypeFormatter() { CallBase = true }; formatter.SupportedMediaTypes.Add(mediaType); HttpRequestMessage request = new HttpRequestMessage() { Content = new StringContent("fred") }; request.Content.Headers.ContentType = mediaType; HttpResponseMessage response = new HttpResponseMessage() { RequestMessage = request }; ResponseMediaTypeMatch match = formatter.SelectResponseMediaType(typeof(string), request); Assert.NotNull(match); Assert.Equal(ResponseFormatterSelectionResult.MatchOnRequestContentType, match.ResponseFormatterSelectionResult); Assert.NotNull(match.MediaTypeMatch.MediaType); Assert.Equal(mediaType.MediaType, match.MediaTypeMatch.MediaType.MediaType); }
public void SelectResponseMediaTypeMatchesType() { MockMediaTypeFormatter formatter = new MockMediaTypeFormatter() { CallBase = true }; HttpRequestMessage request = new HttpRequestMessage(); ResponseMediaTypeMatch match = formatter.SelectResponseMediaType(typeof(string), request); Assert.NotNull(match); Assert.Equal(ResponseFormatterSelectionResult.MatchOnCanWriteType, match.ResponseFormatterSelectionResult); Assert.Null(match.MediaTypeMatch.MediaType); }
public void SelectResponseMediaTypeMatchesAcceptHeaderToSupportedMediaTypes(MediaTypeWithQualityHeaderValue mediaTypeWithQuality) { MockMediaTypeFormatter formatter = new MockMediaTypeFormatter() { CallBase = true }; MediaTypeHeaderValue mediaTypeWithoutQuality = new MediaTypeHeaderValue(mediaTypeWithQuality.MediaType); formatter.SupportedMediaTypes.Add(mediaTypeWithoutQuality); HttpRequestMessage request = new HttpRequestMessage(); request.Headers.Accept.Add(mediaTypeWithQuality); ResponseMediaTypeMatch match = formatter.SelectResponseMediaType(typeof(string), request); Assert.NotNull(match); Assert.Equal(ResponseFormatterSelectionResult.MatchOnRequestAcceptHeader, match.ResponseFormatterSelectionResult); double quality = mediaTypeWithQuality.Quality.Value; Assert.Equal(quality, match.MediaTypeMatch.Quality); Assert.NotNull(match.MediaTypeMatch.MediaType); Assert.Equal(mediaTypeWithoutQuality.MediaType, match.MediaTypeMatch.MediaType.MediaType); }