/// <summary> /// Send a DELETE request. /// </summary> /// <param name="requestUri">The URI to send the request to.</param> /// <returns>HttpResponseMessage object representing the response.</returns> public Task <HttpResponseMessage> DeleteAsync(string requestUri) { return(Task.Run(() => { ExpectedRequest expectedRequest = _expectedRequests.Dequeue(); HttpRequestMessage actualRequest = new HttpRequestMessage(HttpMethod.Get, requestUri); if (string.Compare(expectedRequest.Request.RequestUri.AbsoluteUri, actualRequest.RequestUri.AbsoluteUri, true) != 0) { throw new Exception("The expected request was not received!"); } else if (expectedRequest.Request.Method != HttpMethod.Delete) { throw new Exception($"A different request method was expected ('{expectedRequest.Request.Method}' != 'DELETE')!"); } if (!_expectedResponses.ContainsKey(actualRequest.RequestUri.AbsoluteUri)) { throw new KeyNotFoundException("No response registered for this request!"); } return _expectedResponses[actualRequest.RequestUri.AbsoluteUri].Dequeue().Response; })); }
/// <summary> /// Registers an expected request message. /// </summary> /// <param name="request">The expected request message.</param> public void RegisterExpectedRequest(ExpectedRequest request) { _expectedRequests.Enqueue(request); }