/// <summary>
 /// Constructs a new KayakContext with the provided `ISocket`, `IKayakServerRequest`, and 
 /// `IKayakServerResponse` objects.
 /// </summary>
 public KayakContext(ISocket socket, IKayakServerRequest request, IKayakServerResponse response)
 {
     Socket = socket;
     Request = request;
     Response = response;
     Items = new Dictionary<object, object>();
 }
            public void SetUp()
            {
                chunks = new List<ArraySegment<byte>>();
                readChunks = new List<ArraySegment<byte>>();
                mockSocket = Mocks.MockSocketRead(chunks);
                mockBeginObserver = new Mock<IObserver<Unit>>();
                mockBeginObserver.Setup(o => o.OnError(It.IsAny<Exception>())).Callback<Exception>(e =>
                {
                    Console.WriteLine("Begin Observer got exception.");
                    Console.Out.WriteException(e);
                });

                mockReadObserver = new Mock<IObserver<ArraySegment<byte>>>();
                mockReadObserver.Setup(o => o.OnError(It.IsAny<Exception>())).Callback<Exception>(e =>
                {
                    Console.WriteLine("Read Observer got exception.");
                    Console.Out.WriteException(e);
                });
                mockReadObserver.Setup(o => o.OnNext(It.IsAny<ArraySegment<byte>>())).Callback<ArraySegment<byte>>(d =>
                {
                    readChunks.Add(d);
                });

                request = new KayakServerRequest(mockSocket.Object);
                headers = new Dictionary<string, string>();
            }