Ejemplo n.º 1
0
        public async Task Completes_With_Last_Read()
        {
            var pipe      = new Pipe();
            var encryptor = new UniformPipelineWriter(pipe.Writer);

            encryptor.Writer.Write(Samples.MinimalPacket);
            encryptor.Writer.Complete();

            await Task.Delay(100);

            var result = await pipe.Reader.ReadAsync();

            Assert.IsTrue(result.IsCompleted);
        }
Ejemplo n.º 2
0
        public async Task Completes_After_Read_Async_Is_Called()
        {
            var pipe      = new Pipe();
            var encryptor = new UniformPipelineWriter(pipe.Writer);

            bool completed = false;

            pipe.Reader.OnWriterCompleted((e, o) => completed = true, null);

            var reading = pipe.Reader.ReadAsync();

            encryptor.Writer.Complete();
            var result = await reading;

            await Task.Delay(10);

            Assert.IsTrue(completed && result.IsCompleted);
        }
Ejemplo n.º 3
0
        public async Task Handles_Partial_Packet_Writes()
        {
            var pipe      = new Pipe();
            var encryptor = new UniformPipelineWriter(pipe.Writer);

            encryptor.Writer.Write(new Span <byte>(Samples.UnencryptedC1Packet, 0, 3));
            await encryptor.Writer.FlushAsync();

            var read = pipe.Reader.ReadAsync();
            await Task.Delay(50);

            Assert.IsFalse(read.IsCompleted);

            encryptor.Writer.Write(new Span <byte>(Samples.UnencryptedC1Packet, 3, Samples.UnencryptedC1Packet.Length - 3));
            await encryptor.Writer.FlushAsync();

            await Task.Delay(50);

            Assert.IsTrue(read.IsCompleted);
        }