/// <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));
            }
        }