protected override async Task <SystemHttpResponseMessage> SendAsync(SystemHttpRequestMessage request, CancellationToken cancellationToken) { var setups = this.setups.Find(request).ToList(); // there are no setups that were found successful. if (setups.All(x => x.Exception is MockHttpClientException)) { throw MockHttpClientException.Combined(setups.Select(x => x.Exception)); } // there are more than 1 setup that was found. if (setups.Count(x => x.Exception is null) > 1) { throw await MockHttpClientException.MatchedMultipleRequests(request, setups.Count()); } var(setup, exception) = setups.FirstOrDefault(x => x.Exception is null); if (setup is null) { throw await MockHttpClientException.NoSetupAsync(request); } var result = setup.Results.GetResultNext(); if (result is null) { throw await MockHttpClientException.NoMatchingResponses(request); } result.Matched = true; return(result.HttpResponseMessage); }
private MockHttpClientException TryVerify(Func <Result, MockHttpClientException> verify) { List <MockHttpClientException> errors = new List <MockHttpClientException>(); foreach (var result in Results) { var error = verify(result); if (error is MockHttpClientException) { errors.Add(error); } } if (errors.Any()) { return(MockHttpClientException.Combined(errors)); } return(null); }
private MockHttpClientException TryVerify(Func <Setup, MockHttpClientException> verify) { List <MockHttpClientException> errors = new List <MockHttpClientException>(); foreach (var setup in Setups) { var error = verify(setup); if (error is MockHttpClientException) { errors.Add(error); } } if (errors.Any()) { return(MockHttpClientException.Combined(errors)); } return(null); }