private static async Task SetupMockServerRequestAsync(
            MockServerClient mockServerClient,
            Expectation expectation,
            HttpRequest httpRequest,
            HttpResponse httpResponse)
        {
            var isSecure       = expectation.HttpRequest.IsSecure.HasValue && expectation.HttpRequest.IsSecure.Value;
            var unlimitedTimes = expectation.Times == null || expectation.Times.IsUnlimited;

            await mockServerClient
            .When(httpRequest
                  .WithMethod(expectation.HttpRequest.Method)
                  .WithPath(expectation.HttpRequest.Path)
                  .WithQueryStringParameters(expectation.HttpRequest.Parameters.ToArray())
                  .WithBody(expectation.HttpRequest.Body)
                  .WithSecure(isSecure),
                  unlimitedTimes?Times.Unlimited() : Times.Exactly(expectation.Times.Count))
            .RespondAsync(httpResponse
                          .WithStatusCode(expectation.HttpResponse.StatusCode)
                          .WithHeaders(expectation.HttpResponse.Headers.ToArray())
                          .WithBody(expectation.HttpResponse.Body ?? Contents.EmptyText())
                          .WithDelay(GetTimeSpanDelay(expectation.HttpResponse.Delay)));
        }