public void StreamManager_GetPayloadAssembler_Exists_Ok()
        {
            var m  = new StreamManager((c) => { });
            var id = Guid.NewGuid();

            var a  = m.GetPayloadAssembler(id);
            var a2 = m.GetPayloadAssembler(id);

            Assert.AreEqual(a, a2);
        }
        public async void DoneProducing_Data_WillCauseZeroRead_And_End()
        {
            const int expectedReadCount = 100;
            var       producerBuffer    = new byte[100];
            var       consumerBuffer    = new byte[expectedReadCount];
            var       readCount         = 0;

            var streamManager = new StreamManager(e => { });
            var id            = Guid.NewGuid();

            var assembler = streamManager.GetPayloadAssembler(id);

            assembler.ContentLength = 0;

            var random = new Random();

            random.NextBytes(producerBuffer);

            var stream = new PayloadStream(assembler);

            await stream.WriteAsync(producerBuffer, 0, producerBuffer.Length);

            stream.DoneProducing();

            readCount = stream.Read(consumerBuffer, 0, expectedReadCount);
            Assert.Equal(100, readCount);

            readCount = stream.Read(consumerBuffer, readCount, expectedReadCount);
            Assert.Equal(0, readCount);
        }
        public void StreamManager_GetPayloadAssembler_NotExists_Ok()
        {
            var m  = new StreamManager((c) => { });
            var id = Guid.NewGuid();

            var a = m.GetPayloadAssembler(id);

            Assert.IsNotNull(a);
            Assert.AreEqual(id, a.Id);
        }
Пример #4
0
        public void StreamManager_GetPayloadAStream__StreamsMatch()
        {
            var m  = new StreamManager(c => { });
            var id = Guid.NewGuid();

            var a = m.GetPayloadAssembler(id);
            var s = m.GetPayloadStream(new Header {
                Id = id
            });

            Assert.Equal(a.GetPayloadAsStream(), s);
        }
Пример #5
0
        public void StreamManager_OnReceive_Exists()
        {
            var m  = new StreamManager(c => { });
            var id = Guid.NewGuid();

            var a = m.GetPayloadAssembler(id);
            var s = a.GetPayloadAsStream();

            m.OnReceive(new Header {
                Id = id, End = true
            }, s, 100);

            Assert.True(a.End);
        }
        public void StreamManager_CloseStream_NotEnd_Closed()
        {
            bool closed = false;
            var  m      = new StreamManager((c) =>
            {
                closed = true;
            });

            var id = Guid.NewGuid();
            var a  = m.GetPayloadAssembler(id);

            m.CloseStream(id);

            Assert.IsTrue(closed);
        }
Пример #7
0
        public void StreamManager_CloseStream_End_NoOp()
        {
            var closed = false;
            var m      = new StreamManager(c =>
            {
                closed = true;
            });

            var id = Guid.NewGuid();
            var a  = m.GetPayloadAssembler(id);
            var s  = a.GetPayloadAsStream();

            // set it as ended
            a.OnReceive(new Header {
                End = true
            }, s, 1);

            m.CloseStream(id);

            Assert.False(closed);
        }