public void NoRequestSet()
        {
            var service  = Substitute.For <IBodyDecoder>();
            var received = new Received(new IPEndPoint(IPAddress.Loopback, 9231), Substitute.For <IBufferReader>());
            var context  = Substitute.For <IPipelineHandlerContext>();

            var sut = new BodyDecoder(service, 65535, 65535);

            Assert.Throws <InvalidOperationException>(() => sut.HandleUpstream(context, received));
        }
        public void Test()
        {
            var service = Substitute.For <IBodyDecoder>();
            var context = Substitute.For <IPipelineHandlerContext>();
            var request = new HttpRequest("GET", "/", "HTTP/1.1");

            request.Body = new MemoryStream(Encoding.ASCII.GetBytes("Hello world!"));
            var msg = new ReceivedHttpRequest(request);
            var sut = new BodyDecoder(service, 65535, 65535);

            sut.HandleUpstream(context, msg);
            var received = new Received(new IPEndPoint(IPAddress.Loopback, 9231), Substitute.For <IBufferReader>());

            sut.HandleUpstream(context, received);
        }
        private void TriggerMessageReceived(HttpMessage message)
        {
            var request = message as HttpRequest;

            if (BodyDecoder != null && request != null)
            {
                if (message.Body != null && message.Body.Length > 0)
                {
                    var result = BodyDecoder.Decode(request);
                    if (!result)
                    {
                        throw new BadRequestException("Unknown body content-type.");
                    }
                }
                var cookies = request.Headers["Cookie"];
                if (cookies != null)
                {
                    request.Cookies = _cookieParser.Parse(cookies);
                }
            }

            _messageReceived(message);
        }