public void MatchAcceptHeader_ReturnsMatch(string[] acceptHeaders, string[] supportedMediaTypes, string expectedMediaType, double expectedQuality, int ranking) { // Arrange MockContentNegotiator negotiator = new MockContentNegotiator(); List <MediaTypeWithQualityHeaderValue> unsortedAcceptHeaders = acceptHeaders.Select(a => MediaTypeWithQualityHeaderValue.Parse(a)).ToList(); IEnumerable <MediaTypeWithQualityHeaderValue> sortedAcceptHeaders = negotiator.SortMediaTypeWithQualityHeaderValuesByQFactor(unsortedAcceptHeaders); MockMediaTypeFormatter formatter = new MockMediaTypeFormatter(); foreach (string supportedMediaType in supportedMediaTypes) { formatter.SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse(supportedMediaType)); } // Act MediaTypeFormatterMatch match = negotiator.MatchAcceptHeader(sortedAcceptHeaders, formatter); // Assert if (expectedMediaType == null) { Assert.Null(match); } else { Assert.Same(formatter, match.Formatter); Assert.Equal(MediaTypeHeaderValue.Parse(expectedMediaType), match.MediaType); Assert.Equal(expectedQuality, match.Quality); Assert.Equal(ranking, (int)match.Ranking); } }
public void ShouldMatchOnType_ReturnsExpectedResult(bool excludeMatchOnType, string[] acceptHeaders, bool expectedResult) { // Arrange MockContentNegotiator negotiator = new MockContentNegotiator(excludeMatchOnType); List <MediaTypeWithQualityHeaderValue> unsortedAcceptHeaders = acceptHeaders.Select(a => MediaTypeWithQualityHeaderValue.Parse(a)).ToList(); IEnumerable <MediaTypeWithQualityHeaderValue> sortedAcceptHeaders = negotiator.SortMediaTypeWithQualityHeaderValuesByQFactor(unsortedAcceptHeaders); // Act bool result = negotiator.ShouldMatchOnType(sortedAcceptHeaders); // Assert Assert.Equal(expectedResult, result); }
public void SortMediaTypeWithQualityHeaderValuesByQFactor_SortsCorrectly(IEnumerable <string> unsorted, IEnumerable <string> expectedSorted) { // Arrange MockContentNegotiator negotiator = new MockContentNegotiator(); List <MediaTypeWithQualityHeaderValue> unsortedValues = new List <MediaTypeWithQualityHeaderValue>(unsorted.Select(u => MediaTypeWithQualityHeaderValue.Parse(u))); List <MediaTypeWithQualityHeaderValue> expectedSortedValues = new List <MediaTypeWithQualityHeaderValue>(expectedSorted.Select(u => MediaTypeWithQualityHeaderValue.Parse(u))); // Act IEnumerable <MediaTypeWithQualityHeaderValue> actualSorted = negotiator.SortMediaTypeWithQualityHeaderValuesByQFactor(unsortedValues); // Assert Assert.True(expectedSortedValues.SequenceEqual(actualSorted)); }
public void SortMediaTypeWithQualityHeaderValuesByQFactor_ThrowsOnNull() { MockContentNegotiator negotiator = new MockContentNegotiator(); Assert.ThrowsArgumentNull(() => negotiator.SortMediaTypeWithQualityHeaderValuesByQFactor((HttpHeaderValueCollection <MediaTypeWithQualityHeaderValue>)null), "headerValues"); }