示例#1
0
        /// <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;
            }));
        }
示例#2
0
 /// <summary>
 /// Registers an expected request message.
 /// </summary>
 /// <param name="request">The expected request message.</param>
 public void RegisterExpectedRequest(ExpectedRequest request)
 {
     _expectedRequests.Enqueue(request);
 }