示例#1
0
        public async Task FlushBySizeTest()
        {
            var buffer             = new BufferWithFifoEviction <string>(1000, new StringLengthCostAssigner());
            var bufferFlushingTask = new DummyBufferFlushingTask(buffer, TimeSpan.MaxValue, 3, "No-Name");

            await bufferFlushingTask.Run();

            Assert.Equal(0, bufferFlushingTask.SentOut.Count);

            buffer.Add("msg1");
            buffer.Add("msg2");
            await bufferFlushingTask.Run();

            Assert.Equal(0, bufferFlushingTask.SentOut.Count);

            buffer.Add("msg3");
            await bufferFlushingTask.Run();

            Assert.Equal(1, bufferFlushingTask.SentOut.Count);

            Assert.Equal(3, bufferFlushingTask.SentOut[0].Count);
            Assert.Equal(new List <string>()
            {
                "msg1", "msg2", "msg3"
            }, bufferFlushingTask.SentOut[0]);
        }
        public void FlushWithNPlusOneElementsTest()
        {
            var buffer             = new BufferWithFifoEviction <string>(1000, new StringLengthCostAssigner());
            var bufferFlushingTask = new DummyBufferFlushingTask(buffer, TimeSpan.MaxValue, 3, "No-Name");

            buffer.Add("msg1");
            buffer.Add("msg2");
            buffer.Add("msg3");
            buffer.Add("msg4");
            bufferFlushingTask.Run();
            Assert.Equal(4, bufferFlushingTask.SentOut[0].Count);
        }
        public void FlushWhenBufferCapacityIsSmallTest()
        {
            var buffer             = new BufferWithFifoEviction <string>(12, new StringLengthCostAssigner());
            var bufferFlushingTask = new DummyBufferFlushingTask(buffer, TimeSpan.MaxValue, 3, "No-Name");

            buffer.Add("msg1");
            buffer.Add("msg2");
            buffer.Add("msg3");
            buffer.Add("msg4");
            bufferFlushingTask.Run();
            Assert.Equal(3, bufferFlushingTask.SentOut[0].Count);
            Assert.Equal(new List <string>()
            {
                "msg2", "msg3", "msg4"
            }, bufferFlushingTask.SentOut[0]);
        }