Beispiel #1
0
        public void TestRecordMaintainsUpstreamOverrideHostHeader(string upstreamHostHeaderValue)
        {
            var httpContext = new DefaultHttpContext();
            RecordingHandler testRecordingHandler = new RecordingHandler(Directory.GetCurrentDirectory());

            testRecordingHandler.StartRecording("hello.json", httpContext.Response);

            var recordingId = httpContext.Response.Headers["x-recording-id"].ToString();

            httpContext.Request.Body                      = TestHelpers.GenerateStreamRequestBody(String.Empty);
            httpContext.Request.ContentLength             = 0;
            httpContext.Request.Headers["x-recording-id"] = recordingId;
            httpContext.Request.Headers["x-recording-upstream-base-uri"] = "http://example.org";

            if (!String.IsNullOrWhiteSpace(upstreamHostHeaderValue))
            {
                httpContext.Request.Headers["x-recording-upstream-host-header"] = upstreamHostHeaderValue;
            }

            httpContext.Request.Method = "GET";

            var upstreamRequest = testRecordingHandler.CreateUpstreamRequest(httpContext.Request, new byte[] { });

            if (!String.IsNullOrWhiteSpace(upstreamHostHeaderValue))
            {
                Assert.Equal(upstreamHostHeaderValue, upstreamRequest.Headers.Host);
            }
            else
            {
                Assert.Null(upstreamRequest.Headers.Host);
            }
        }
Beispiel #2
0
        public void TestCreateUpstreamRequestIncludesExpectedHeaders(params string[] incomingHeaders)
        {
            var requestContext         = GenerateHttpRequestContext(incomingHeaders);
            var recordingHandler       = new RecordingHandler(Directory.GetCurrentDirectory());
            var upstreamRequestContext = GenerateHttpRequestContext(incomingHeaders);

            var output = recordingHandler.CreateUpstreamRequest(upstreamRequestContext.Request, new byte[] { });

            // iterate across the set we know about and confirm that GenerateUpstreamRequest worked properly!
            var setOfHeaders = GenerateHeaderValuesTuples(incomingHeaders);
            {
                foreach (var headerTuple in setOfHeaders)
                {
                    var inContent  = false;
                    var inStandard = false;

                    try
                    {
                        inContent = output.Headers.Contains(headerTuple.Item1);
                    }
                    catch (Exception) { }

                    try
                    {
                        inStandard = output.Content.Headers.Contains(headerTuple.Item1);
                    }
                    catch (Exception) { }

                    Assert.True(inContent || inStandard);
                }
            }
        }