Example #1
0
        public void CreateRunscopeRequestWithMultiValueHeaders()
        {
            var httpRequestMessage = new HttpRequestMessage()
            {
                RequestUri = new Uri("http://example.org")
            };

            httpRequestMessage.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml"));
            httpRequestMessage.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

            var message  = new RunscopeRequest(httpRequestMessage);
            var jrequest = message.ToJObject();
            var expected =
                new JObject(new[]
            {
                new JProperty("method", "GET"),
                new JProperty("url", "http://example.org"),
                new JProperty("headers", new JObject(new []
                {
                    new JProperty("Accept", "application/xml, application/json"),
                })),
            });

            Assert.Equal(expected, jrequest);
        }
Example #2
0
        public void CreateRunscopeRequestWithSingleValueHeaders()
        {
            var httpRequestMessage = new HttpRequestMessage()
            {
                RequestUri = new Uri("http://example.org")
            };

            httpRequestMessage.Headers.Authorization = new AuthenticationHeaderValue("basic", "foo");
            httpRequestMessage.Headers.CacheControl  = new CacheControlHeaderValue()
            {
                MaxAge = new TimeSpan(0, 0, 0, 30)
            };
            var message  = new RunscopeRequest(httpRequestMessage);
            var jrequest = message.ToJObject();
            var expected =
                new JObject(new[]
            {
                new JProperty("method", "GET"),
                new JProperty("url", "http://example.org"),
                new JProperty("headers", new JObject(new []
                {
                    new JProperty("Authorization", "basic foo"),
                    new JProperty("Cache-Control", "max-age=30")
                })),
            });

            Assert.Equal(expected, jrequest);
        }
Example #3
0
        public void CreateRunscopeRequestWithBody()
        {
            var httpRequestMessage = new HttpRequestMessage()
            {
                RequestUri = new Uri("http://example.org")
            };

            httpRequestMessage.Content = new StringContent("This is some text");

            var message  = new RunscopeRequest(httpRequestMessage);
            var jrequest = message.ToJObject();
            var expected =
                new JObject(new[]
            {
                new JProperty("method", "GET"),
                new JProperty("url", "http://example.org"),
                new JProperty("body", "This is some text"),
                new JProperty("headers", new JObject(new []
                {
                    new JProperty("Content-Type", "text/plain; charset=utf-8"),
                }))
            });

            Assert.Equal(expected, jrequest);
        }
Example #4
0
        public void CreateMinimumRunscopeRequest()
        {
            var httpRequestMessage = new HttpRequestMessage()
            {
                RequestUri = new Uri("http://example.org")
            };
            var message  = new RunscopeRequest(httpRequestMessage);
            var jrequest = message.ToJObject();
            var expected =
                new JObject(new[]
            {
                new JProperty("method", "GET"),
                new JProperty("url", "http://example.org"),
            });

            Assert.Equal(expected, jrequest);
        }
Example #5
0
        public async Task ProcessHttpMessage(HttpMessage message)
        {
            var runscopeMessage = new RunscopeMessage()
            {
                UniqueIdentifier = message.MessageId
            };

            if (message.IsRequest)
            {
                _Logger.LogInfo("Processing HTTP request " + message.MessageId.ToString());
                runscopeMessage.Request = await RunscopeRequest.CreateFromAsync(message.HttpRequestMessage);
            }
            else
            {
                _Logger.LogInfo("Processing HTTP response " + message.MessageId.ToString());
                runscopeMessage.Response = await RunscopeResponse.CreateFromAsync(message.HttpResponseMessage);
            }

            var messagesLink = new MessagesLink()
            {
                Method = HttpMethod.Post
            };

            messagesLink.BucketKey       = _BucketKey;
            messagesLink.RunscopeMessage = runscopeMessage;
            var runscopeResponse = await _HttpClient.SendAsync(messagesLink.CreateRequest());

            if (runscopeResponse.IsSuccessStatusCode)
            {
                _Logger.LogDebug("Message forwarded to Runscope");
            }
            else
            {
                _Logger.LogDebug("Failed to send request");
            }
        }