public void Given_request_contains_expected_header_when_matching_with_header_name_only_should_match() { HttpRequestMessage request = GetRequestWithHeaders(); _sut = new HttpHeadersMatcher("Cache-Control"); // Act & assert _sut.IsMatch(new MockHttpRequestContext(request)).Should().BeTrue(); }
public void Given_request_contains_expected_header_with_multiple_values_when_matching_for_all_values_should_match_irregardless_of_order(params string[] values) { HttpRequestMessage request = GetRequestWithHeaders(); _sut = new HttpHeadersMatcher("Cache-Control", values); // Act & assert _sut.IsMatch(new MockHttpRequestContext(request)).Should().BeTrue(); }
public void Given_request_contains_expected_header_with_multiple_values_when_matching_with_wildcard_should_match(string value) { HttpRequestMessage request = GetRequestWithHeaders(); _sut = new HttpHeadersMatcher("Cache-Control", value, true); // Act & assert _sut.IsMatch(new MockHttpRequestContext(request)).Should().BeTrue(); }
public void Given_request_contains_expected_header_with_multiple_values_when_matching_for_single_value_should_match() { HttpRequestMessage request = GetRequestWithHeaders(); _sut = new HttpHeadersMatcher("Cache-Control", "must-revalidate"); // Act & assert _sut.IsMatch(new MockHttpRequestContext(request)).Should().BeTrue(); }
public void When_formatting_single_header_should_return_human_readable_representation() { string expectedText = "Headers: header-name: header-value"; _sut = new HttpHeadersMatcher("header-name", "header-value"); // Act string displayText = _sut.ToString(); // Assert displayText.Should().Be(expectedText); }
public async Task Given_null_context_when_matching_it_should_throw() { _sut = new HttpHeadersMatcher(new List <KeyValuePair <string, IEnumerable <string> > >()); MockHttpRequestContext requestContext = null; // Act // ReSharper disable once ExpressionIsAlwaysNull Func <Task> act = () => _sut.IsMatchAsync(requestContext); // Assert await act.Should() .ThrowAsync <ArgumentNullException>() .WithParamName(nameof(requestContext)); }
public void Given_request_contains_expected_headers_when_matching_should_match() { DateTimeOffset lastModified = DateTimeOffset.UtcNow; HttpRequestMessage request = GetRequestWithHeaders(lastModified); _sut = new HttpHeadersMatcher(new Dictionary <string, IEnumerable <string> > { { "Cache-Control", new [] { "must-revalidate", "public", "max-age=31536000" } }, { "Accept", new [] { "application/json" } }, { "Last-Modified", new [] { lastModified.ToString("R", CultureInfo.InvariantCulture) } }, { "Content-Length", new [] { "123" } } }); // Act & assert _sut.IsMatch(new MockHttpRequestContext(request)).Should().BeTrue(); }
public void When_formatting_multiple_headers_should_return_human_readable_representation() { string expectedText = $"Headers: Content-Type: text/plain{Environment.NewLine}Accept: text/plain, text/html"; var headers = new HttpHeadersCollection { { "Content-Type", "text/plain" }, { "Accept", new[] { "text/plain", "text/html" } } }; _sut = new HttpHeadersMatcher(headers); // Act string displayText = _sut.ToString(); // Assert displayText.Should().Be(expectedText); }