コード例 #1
0
        public async Task TestDroppedConnectionWithIncomingData() {
            using (var server = new TestNode()) {
                server.ListenAsync();

                var client = new TestNode();
                await client.ConnectAsync();

                var result = await server.ReadState();
                Assert.Equal(result, TestNodeState.Connected);
                Assert.True(server.IsStatesQueueEmpty());

                // Dispose, not a clean disconnect
                client.Dispose();

                var payload = GenerateRandomBytes(100);
                server.SendDataAsync(payload);

                result = await server.ReadState();
                Assert.Equal(result, TestNodeState.Disconnected);
                Assert.True(server.IsStatesQueueEmpty());
            }
        }
コード例 #2
0
        private async Task SendPayloads(TestNode server, TestNode client, byte[][] payloads) {
            for (int i = 0; i < payloads.Length; i++) {
                client.SendDataAsync(payloads[i]);
                using (var result = await server.ReadMessage()) {

                    Assert.True(result.Payload.SequenceEqual(payloads[i]));
                }
            }
        }
コード例 #3
0
 private void SendPayloadsWithoutWaiting(TestNode client, byte[][] payloads) {
     for (int i = 0; i < payloads.Length; i++) {
         client.SendDataAsync(payloads[i]);
     }
 }
コード例 #4
0
        public async Task ManySimpleMessageTestWithoutWaiting(byte[][] payloads, int latency, int dropPercentage) {
            using (var server = new TestNode()) {
                using (var client = new TestNode(new TestSettings(latency, dropPercentage))) {
                    server.ListenAsync();
                    await client.ConnectAsync();

                    for (int n = 0; n < 50; n++) {
                        for (int i = 0; i < payloads.Length; i++) {
                            client.SendDataAsync(payloads[i]);
                        }
                    }

                    for (int n = 0; n < 50; n++) {
                        for (int i = 0; i < payloads.Length; i++) {
                            using (var result = await server.ReadMessage()) {
                                Assert.True(result.Payload.SequenceEqual(payloads[i]));
                            }
                        }
                    }

                    await client.DisconnectAsync();
                }
            }
        }