Exemplo n.º 1
0
        public void continuation_message()
        {
            var payload = new byte[WebSocketFrame.FragmentLength + 1];

            payload[WebSocketFrame.FragmentLength] = 1;

            var message = new WebSocketMessage(WebSocketOpcode.Binary, new MemoryStream(payload));

            var buffer = new SocketBufferFake();

            var encoder = new WebSocketEncoder();

            encoder.Prepare(message);
            encoder.Send(buffer);

            // first frame
            encoder.OnSendCompleted(buffer.BytesTransferred).Should().BeFalse();

            buffer = new SocketBufferFake();
            encoder.Send(buffer);

            // second frame
            encoder.OnSendCompleted(buffer.BytesTransferred).Should().BeTrue();
            // 1. byte: headers
            // 2. byte: length
            // rest payload
            var expected = new byte[] { 128, 1, 1 };

            buffer.Buffer.Should().BeEquivalentTo(expected);
        }
Exemplo n.º 2
0
        public void pong_message()
        {
            var message = new WebSocketMessage(WebSocketOpcode.Pong);

            var buffer = new SocketBufferFake();

            var encoder = new WebSocketEncoder();

            encoder.Prepare(message);
            encoder.Send(buffer);

            encoder.OnSendCompleted(buffer.BytesTransferred).Should().BeTrue();
            // 1. byte: headers
            // 2. byte: length
            var expected = new byte[] { 138, 0 };

            buffer.Buffer.Should().BeEquivalentTo(expected);
        }
Exemplo n.º 3
0
        public void text_message()
        {
            var message = new WebSocketMessage(WebSocketOpcode.Text, new MemoryStream(Encoding.UTF8.GetBytes("abc")));

            var buffer = new SocketBufferFake();

            var encoder = new WebSocketEncoder();

            encoder.Prepare(message);
            encoder.Send(buffer);

            encoder.OnSendCompleted(buffer.BytesTransferred).Should().BeTrue();
            // 1. byte: headers
            // 2. byte: length
            // rest: payload
            var expected = new byte[] { 129, 3, (byte)'a', (byte)'b', (byte)'c' };

            buffer.Buffer.Should().BeEquivalentTo(expected);
        }
Exemplo n.º 4
0
        public void binary_message()
        {
            var message = new WebSocketMessage(WebSocketOpcode.Binary, new MemoryStream(new byte[] { 1, 2, 3 }));

            var buffer = new SocketBufferFake();

            var encoder = new WebSocketEncoder();

            encoder.Prepare(message);
            encoder.Send(buffer);

            encoder.OnSendCompleted(buffer.BytesTransferred).Should().BeTrue();
            // 1. byte: headers
            // 2. byte: length
            // rest: payload
            var expected = new byte[] { 130, 3, 1, 2, 3 };

            buffer.Buffer.Should().BeEquivalentTo(expected);
        }