public async Task Packet_Decryptor_Receives_Packets()
        {
            const int PacketsToSend = 5;

            var pipe      = new Pipe();
            var decryptor = new PacketEventReader(new XorPipelineDecryptor(pipe.Reader).Reader);

            int packetsReceived = 0;
            var readTask        = decryptor.BeginRead(packet => packetsReceived += 1);

            for (int i = 0; i < PacketsToSend; i++)
            {
                await pipe.Writer.WriteAsync(Samples.UnencryptedC1Packet);

                await pipe.Writer.FlushAsync();
            }

            pipe.Writer.Complete();
            await readTask;

            Assert.AreEqual(packetsReceived, PacketsToSend);
        }
Exemple #2
0
 /// <summary>Initializes a new instance of the <see cref="DuplexConnection"/> class.</summary>
 public DuplexConnection(IDuplexPipe pipe, int?maxPacketSize = null)
 {
     this.duplexPipe   = pipe;
     this.packetReader = new PacketEventReader(pipe.Input, maxPacketSize);
 }