コード例 #1
0
        private async Task <WebSocketMessageReadStream> SimulateRead(WebSocketMessageReadStreamStub stub)
        {
            await Task.Yield();

            await Task.Delay(500).ConfigureAwait(false);

            return(stub);
        }
コード例 #2
0
        public async Task ReceiveData(string testData)
        {
            WebSocket socket     = A.Fake <WebSocket>();
            var       readStream = new WebSocketMessageReadStreamStub(new MemoryStream(Encoding.UTF8.GetBytes(testData)), WebSocketMessageType.Text, WebSocketExtensionFlags.None);

            A.CallTo(() => socket.IsConnected).Returns(true);
            A.CallTo(socket).WithReturnType <Task <WebSocketMessageReadStream> >().Returns(SimulateRead(readStream));
            Client client = new Client(1, socket);

            client.ProcessConnection().Forget();

            object delegateSender = null;
            string delegateData   = null;

            client.MessageReceived += (sender, data) =>
            {
                delegateSender = sender;
                delegateData   = data;
            };
            await client.CloseAsync();

            Assert.AreSame(client, delegateSender);
            Assert.AreEqual(testData, delegateData);
        }