public async Task SuccessfulRecieve_HasRecievedFromSocket()
        {
            var fakeSocket = new FakeWebSocket();

            var array  = new ArraySegment <byte>(new byte[500]);
            var client = new WebSocketClientConnection(fakeSocket, new DefaultHttpContext());
            var result = await client.ReceiveAsync(array, default);

            Assert.AreEqual(1, fakeSocket.TotalCallsToReceive);
        }
        public async Task Receive_ThrowsGeneralException_ReturnsConnectionFailureResult()
        {
            var fakeSocket = new FakeWebSocket();

            var exceptionThrown = new Exception("total failure");

            fakeSocket.ThrowExceptionOnReceieve(exceptionThrown);

            var array  = new ArraySegment <byte>(new byte[500]);
            var client = new WebSocketClientConnection(fakeSocket, new DefaultHttpContext());
            var result = await client.ReceiveAsync(array, default);

            var failureResult = result as ClientConnectionFailureResult;

            Assert.IsNotNull(failureResult);
            Assert.AreEqual(exceptionThrown, failureResult.Exception);
        }