コード例 #1
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);
        }
コード例 #2
0
        public void FlushBySizeTest()
        {
            var buffer = new BufferWithFifoEviction<string>(1000, new StringLengthCostAssigner());
            var bufferFlushingTask = new DummyBufferFlushingTask(buffer, TimeSpan.MaxValue, 3, "No-Name");

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

            buffer.Add("msg1");
            buffer.Add("msg2");
            bufferFlushingTask.Run();
            Assert.Equal(0, bufferFlushingTask.SentOut.Count);

            buffer.Add("msg3");
            bufferFlushingTask.Run();
            Assert.Equal(1, bufferFlushingTask.SentOut.Count);

            Assert.Equal(bufferFlushingTask.SentOut[0].Count, 3);
            Assert.Equal(bufferFlushingTask.SentOut[0], new List<string>() { "msg1", "msg2", "msg3" });
        }
コード例 #3
0
 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]);
 }