private static IHttpRequestMessagesCheck WithJsonContent(this IHttpRequestMessagesCheck check, object?jsonObject, int?expectedNumberOfRequests) { if (check == null) { throw new ArgumentNullException(nameof(check)); } var jsonString = JsonSerializer.Serialize(jsonObject); return(check.WithFilter(x => x.HasContent(jsonString) && x.HasContentHeader("Content-Type", "application/json*"), expectedNumberOfRequests, $"json content '{jsonString}'")); }
private static IHttpRequestMessagesCheck WithHttpVersion(this IHttpRequestMessagesCheck check, Version httpVersion, int?expectedNumberOfRequests) { if (check == null) { throw new ArgumentNullException(nameof(check)); } if (httpVersion == null) { throw new ArgumentNullException(nameof(httpVersion)); } return(check.WithFilter(x => x.HasHttpVersion(httpVersion), expectedNumberOfRequests, $"HTTP Version '{httpVersion}'")); }
private static IHttpRequestMessagesCheck WithHttpMethod(this IHttpRequestMessagesCheck check, HttpMethod httpMethod, int?expectedNumberOfRequests) { if (check == null) { throw new ArgumentNullException(nameof(check)); } if (httpMethod == null) { throw new ArgumentNullException(nameof(httpMethod)); } return(check.WithFilter(x => x.HasHttpMethod(httpMethod), expectedNumberOfRequests, $"HTTP Method '{httpMethod}'")); }
private static IHttpRequestMessagesCheck WithHeader(this IHttpRequestMessagesCheck check, string headerName, int?expectedNumberOfRequests) { if (check == null) { throw new ArgumentNullException(nameof(check)); } if (string.IsNullOrEmpty(headerName)) { throw new ArgumentNullException(nameof(headerName)); } return(check.WithFilter(x => x.HasRequestHeader(headerName) || x.HasContentHeader(headerName), expectedNumberOfRequests, $"header '{headerName}'")); }
private static IHttpRequestMessagesCheck WithContent(this IHttpRequestMessagesCheck check, string pattern, int?expectedNumberOfRequests) { if (check == null) { throw new ArgumentNullException(nameof(check)); } if (pattern == null) { throw new ArgumentNullException(nameof(pattern)); } return(check.WithFilter(x => x.HasContent(pattern), expectedNumberOfRequests, $"content '{pattern}'")); }
private static IHttpRequestMessagesCheck WithFormUrlEncodedContent(this IHttpRequestMessagesCheck check, IEnumerable <KeyValuePair <string?, string?> > nameValueCollection, int?expectedNumberOfRequests) { if (check == null) { throw new ArgumentNullException(nameof(check)); } if (nameValueCollection == null) { throw new ArgumentNullException(nameof(nameValueCollection)); } using var content = new FormUrlEncodedContent(nameValueCollection); var contentString = content.ReadAsStringAsync().Result; return(check.WithFilter(x => x.HasContent(contentString) && x.HasContentHeader("Content-Type", "application/x-www-form-urlencoded*"), expectedNumberOfRequests, $"form url encoded content '{contentString}'")); }
private static IHttpRequestMessagesCheck WithQueryString(this IHttpRequestMessagesCheck check, string pattern, int?expectedNumberOfRequests) { if (check == null) { throw new ArgumentNullException(nameof(check)); } if (pattern == null) { throw new ArgumentNullException(nameof(pattern)); } var condition = pattern switch { "" => "no querystring", "*" => "any querystring", _ => $"querystring pattern '{pattern}'" }; return(check.WithFilter(x => x.HasQueryString(pattern), expectedNumberOfRequests, condition)); }
private static IHttpRequestMessagesCheck WithRequestUri(this IHttpRequestMessagesCheck check, string pattern, int?expectedNumberOfRequests) { if (check == null) { throw new ArgumentNullException(nameof(check)); } if (string.IsNullOrEmpty(pattern)) { throw new ArgumentNullException(nameof(pattern)); } var condition = string.Empty; if (pattern != "*") { condition = $"uri pattern '{pattern}'"; } return(check.WithFilter(x => x.HasMatchingUri(pattern), expectedNumberOfRequests, condition)); }
/// <summary> /// Asserts whether requests were made with a specific header name and value. /// </summary> /// <param name="check">The implementation that hold all the request messages.</param> /// <param name="headerName">The name of the header that is expected.</param> /// <param name="headerValue">The value of the expected header, supports wildcards.</param> /// <param name="expectedNumberOfRequests">The expected number of requests.</param> /// <returns>The <seealso cref="IHttpRequestMessagesCheck"/> for further assertions.</returns> public static IHttpRequestMessagesCheck WithHeader(this IHttpRequestMessagesCheck check, string headerName, string headerValue, int expectedNumberOfRequests) => WithHeader(check, headerName, headerValue, (int?)expectedNumberOfRequests);
/// <summary> /// Asserts wheter requests are made with specific url encoded content. /// </summary> /// <param name="check">The implementation that hold all the request messages.</param> /// <param name="nameValueCollection">The collection of key/value pairs that should be url encoded.</param> /// <param name="expectedNumberOfRequests">The expected number of requests.</param> /// <returns>The <seealso cref="IHttpRequestMessagesCheck"/> for further assertions.</returns> public static IHttpRequestMessagesCheck WithFormUrlEncodedContent(this IHttpRequestMessagesCheck check, IEnumerable <KeyValuePair <string?, string?> > nameValueCollection, int expectedNumberOfRequests) => WithFormUrlEncodedContent(check, nameValueCollection, (int?)expectedNumberOfRequests);
/// <summary> /// Asserts wheter requests are made with specific url encoded content. /// </summary> /// <param name="check">The implementation that hold all the request messages.</param> /// <param name="nameValueCollection">The collection of key/value pairs that should be url encoded.</param> /// <returns>The <seealso cref="IHttpRequestMessagesCheck"/> for further assertions.</returns> public static IHttpRequestMessagesCheck WithFormUrlEncodedContent(this IHttpRequestMessagesCheck check, IEnumerable <KeyValuePair <string?, string?> > nameValueCollection) => WithFormUrlEncodedContent(check, nameValueCollection, null);
/// <summary> /// Asserts whether requests were made using a specific HTTP Version. /// </summary> /// <param name="check">The implementation that hold all the request messages.</param> /// <param name="httpVersion">The <seealso cref="System.Net.HttpVersion"/> that is expected.</param> /// <returns>The <seealso cref="IHttpRequestMessagesCheck"/> for further assertions.</returns> public static IHttpRequestMessagesCheck WithHttpVersion(this IHttpRequestMessagesCheck check, Version httpVersion) => WithHttpVersion(check, httpVersion, null);
/// <summary> /// Asserts wheter requests are made with specific json content. /// </summary> /// <param name="check">The implementation that hold all the request messages.</param> /// <param name="jsonObject">The object representation of the expected request content.</param> /// <param name="expectedNumberOfRequests">The expected number of requests.</param> /// <returns>The <seealso cref="IHttpRequestMessagesCheck"/> for further assertions.</returns> public static IHttpRequestMessagesCheck WithJsonContent(this IHttpRequestMessagesCheck check, object?jsonObject, int expectedNumberOfRequests) => WithJsonContent(check, jsonObject, (int?)expectedNumberOfRequests);
/// <summary> /// Asserts wheter requests are made with specific json content. /// </summary> /// <param name="check">The implementation that hold all the request messages.</param> /// <param name="jsonObject">The object representation of the expected request content.</param> /// <returns>The <seealso cref="IHttpRequestMessagesCheck"/> for further assertions.</returns> public static IHttpRequestMessagesCheck WithJsonContent(this IHttpRequestMessagesCheck check, object?jsonObject) => WithJsonContent(check, jsonObject, null);
/// <summary> /// Asserts whether requests were made using a specific HTTP Version. /// </summary> /// <param name="check">The implementation that hold all the request messages.</param> /// <param name="httpVersion">The <seealso cref="System.Net.HttpVersion"/> that is expected.</param> /// <param name="expectedNumberOfRequests">The expected number of requests.</param> /// <returns>The <seealso cref="IHttpRequestMessagesCheck"/> for further assertions.</returns> public static IHttpRequestMessagesCheck WithHttpVersion(this IHttpRequestMessagesCheck check, Version httpVersion, int expectedNumberOfRequests) => WithHttpVersion(check, httpVersion, (int?)expectedNumberOfRequests);
/// <summary> /// Asserts whether requests were made with a given querystring based on a pattern. For asserting the decoded version of the querystring is used. /// </summary> /// <param name="check">The implementation that hold all the request messages.</param> /// <param name="pattern">The querystring pattern that is expected.</param> /// <returns>The <seealso cref="IHttpRequestMessagesCheck"/> for further assertions.</returns> public static IHttpRequestMessagesCheck WithQueryString(this IHttpRequestMessagesCheck check, string pattern) => WithQueryString(check, pattern, null);
/// <summary> /// Asserts whether requests were made with a specific header name and value. /// </summary> /// <param name="check">The implementation that hold all the request messages.</param> /// <param name="headerName">The name of the header that is expected.</param> /// <param name="headerValue">The value of the expected header, supports wildcards.</param> /// <returns>The <seealso cref="IHttpRequestMessagesCheck"/> for further assertions.</returns> public static IHttpRequestMessagesCheck WithHeader(this IHttpRequestMessagesCheck check, string headerName, string headerValue) => WithHeader(check, headerName, headerValue, (int?)null);
/// <summary> /// Asserts whether requests were made with a given querystring based on a pattern. For asserting the decoded version of the querystring is used. /// </summary> /// <param name="check">The implementation that hold all the request messages.</param> /// <param name="pattern">The querystring pattern that is expected.</param> /// <param name="expectedNumberOfRequests">The expected number of requests.</param> /// <returns>The <seealso cref="IHttpRequestMessagesCheck"/> for further assertions.</returns> public static IHttpRequestMessagesCheck WithQueryString(this IHttpRequestMessagesCheck check, string pattern, int expectedNumberOfRequests) => WithQueryString(check, pattern, (int?)expectedNumberOfRequests);
/// <summary> /// Asserts whether requests were made with specific content. /// </summary> /// <param name="check">The implementation that hold all the request messages.</param> /// <param name="pattern">The expected content, supports wildcards.</param> /// <returns>The <seealso cref="IHttpRequestMessagesCheck"/> for further assertions.</returns> public static IHttpRequestMessagesCheck WithContent(this IHttpRequestMessagesCheck check, string pattern) => WithContent(check, pattern, null);
/// <summary> /// Asserts whether requests were made with a given HTTP Method. /// </summary> /// <param name="check">The implementation that hold all the request messages.</param> /// <param name="httpMethod">The <seealso cref="HttpMethod"/> that is expected.</param> /// <returns>The <seealso cref="IHttpRequestMessagesCheck"/> for further assertions.</returns> public static IHttpRequestMessagesCheck WithHttpMethod(this IHttpRequestMessagesCheck check, HttpMethod httpMethod) => WithHttpMethod(check, httpMethod, null);
/// <summary> /// Asserts whether requests were made with a given HTTP Method. /// </summary> /// <param name="check">The implementation that hold all the request messages.</param> /// <param name="httpMethod">The <seealso cref="HttpMethod"/> that is expected.</param> /// <param name="expectedNumberOfRequests">The expected number of requests.</param> /// <returns>The <seealso cref="IHttpRequestMessagesCheck"/> for further assertions.</returns> public static IHttpRequestMessagesCheck WithHttpMethod(this IHttpRequestMessagesCheck check, HttpMethod httpMethod, int expectedNumberOfRequests) => WithHttpMethod(check, httpMethod, (int?)expectedNumberOfRequests);