protected async Task <HttpResponseMessage> SendRequest(Action <AppSendBuilder> configure)
        {
            var request = new HttpRequestMessage(HttpMethod.Get, _client.HttpClient.BaseAddress);
            var builder = new AppSendBuilder(request);

            configure(builder);

            var response = await _client.SendAsync(request);

            var expectedStatus = request.GetExpectedStatus();

            if (expectedStatus.HasValue && expectedStatus.Value != response.StatusCode)
            {
                string content = await response.Content.ReadAsStringAsync();

                if (content.Length > 1000)
                {
                    content = content.Substring(0, 1000);
                }

                throw new HttpRequestException($"Expected status code {expectedStatus.Value} but received status code {response.StatusCode} ({response.ReasonPhrase}).\n" + content);
            }

            return(response);
        }
 public static AppSendBuilder StatusCodeShouldBeOk(this AppSendBuilder builder)
 {
     return(builder.ExpectedStatus(HttpStatusCode.OK));
 }
 public static AppSendBuilder StatusCodeShouldBeBadRequest(this AppSendBuilder builder)
 {
     return(builder.ExpectedStatus(HttpStatusCode.BadRequest));
 }
 public static AppSendBuilder StatusCodeShouldBeUnauthorized(this AppSendBuilder builder)
 {
     return(builder.ExpectedStatus(HttpStatusCode.Unauthorized));
 }
 public static AppSendBuilder StatusCodeShouldBeAccepted(this AppSendBuilder builder)
 {
     return(builder.ExpectedStatus(HttpStatusCode.Accepted));
 }