/// <summary> /// Builds an HttpWebResponse using a deprecated constructor and the next queued ResponseSettings for this request /// </summary> /// <remarks>This is based on the sample code here: http://stackoverflow.com/questions/87200/mocking-webresponses-from-a-webrequest </remarks> public override WebResponse GetResponse() { var responseSettings = _expectedResponses.Dequeue(); if (responseSettings is HttpResponseSettings) { var httpResponseSettings = (HttpResponseSettings)responseSettings; var webResponse = TestableHttpWebResponse.GetHttpWebResponse(httpResponseSettings, _uri, DefaultExpectedContentType); if (httpResponseSettings.ExpectException) { throw new WebException("This request failed", new Exception(httpResponseSettings.StatusDescription), WebExceptionStatus.ProtocolError, webResponse); } else { return(webResponse); } } else if (responseSettings is ExceptionResponseSettings) { throw ((ExceptionResponseSettings)responseSettings).ExceptionToThrow; } else { throw new ArgumentException(String.Format("No logic to handle a ResponseSettings object of type '{0}'", responseSettings.GetType().Name)); } }