示例#1
0
        private async Task MsgIoRoundTripManyAsync(MsgIoCodec codec)
        {
            var count = 1000;
            var r     = new Random(Environment.TickCount);
            var tests = Enumerable.Range(0, count).Select(i =>
            {
                var bytes = new byte[1024];
                r.NextBytes(bytes);
                return(bytes);
            }).ToArray();
            var results = new List <byte[]>();

            using (var stream = new MemoryStream())
            {
                var enc = codec.Encoder(stream);
                foreach (var test in tests)
                {
                    await enc.EncodeAsync(test, CancellationToken.None);
                }
                stream.Seek(0, SeekOrigin.Begin);
                var dec = codec.Decoder(stream);
                for (var i = 0; i < tests.Length; i++)
                {
                    results.Add(await dec.DecodeAsync <byte[]>(CancellationToken.None));
                }
            }

            Assert.Equal(results.ToArray(), tests);
        }
示例#2
0
 public Task MsgIoCodecRoundTripMany_Async() => MsgIoRoundTripManyAsync(MsgIoCodec.CreateCodec());
示例#3
0
 public void MsgIoCodecRoundTripMany() => MsgIoRoundTripMany(MsgIoCodec.CreateCodec());