Пример #1
0
        public void retried_messages_appear_in_version_order()
        {
            var buffer    = new StreamBuffer(10, 10, null, true);
            var id2Retry1 = Guid.NewGuid();
            var id2Retry2 = Guid.NewGuid();

            buffer.AddReadMessage(BuildMessageAt(0));
            buffer.AddRetry(BuildMessageAt(2, id2Retry1));
            buffer.AddRetry(BuildMessageAt(3));
            buffer.AddRetry(BuildMessageAt(1));
            buffer.AddRetry(BuildMessageAt(2, id2Retry2));

            var messagePointer = buffer.Scan().First();

            Assert.AreEqual(GetEventIdFor(1), messagePointer.Message.EventId);
            messagePointer.MarkSent();

            messagePointer = buffer.Scan().First();
            Assert.AreEqual(id2Retry1, messagePointer.Message.EventId);
            messagePointer.MarkSent();

            messagePointer = buffer.Scan().First();
            Assert.AreEqual(id2Retry2, messagePointer.Message.EventId);
            messagePointer.MarkSent();

            messagePointer = buffer.Scan().First();
            Assert.AreEqual(GetEventIdFor(3), messagePointer.Message.EventId);
            messagePointer.MarkSent();
        }
        public void retried_messages_appear_in_version_order()
        {
            var buffer = new StreamBuffer(10, 10, -1, true);
            var id1    = Guid.NewGuid();

            buffer.AddReadMessage(BuildMessageAt(id1, 0));
            var id2 = Guid.NewGuid();
            var id3 = Guid.NewGuid();
            var id4 = Guid.NewGuid();
            var id5 = Guid.NewGuid();

            buffer.AddRetry(BuildMessageAt(id2, 2));
            buffer.AddRetry(BuildMessageAt(id3, 3));
            buffer.AddRetry(BuildMessageAt(id4, 1));
            buffer.AddRetry(BuildMessageAt(id5, 2));

            var messagePointer = buffer.Scan().First();

            Assert.AreEqual(id4, messagePointer.Message.EventId);
            messagePointer.MarkSent();

            messagePointer = buffer.Scan().First();
            Assert.AreEqual(id2, messagePointer.Message.EventId);
            messagePointer.MarkSent();

            messagePointer = buffer.Scan().First();
            Assert.AreEqual(id5, messagePointer.Message.EventId);
            messagePointer.MarkSent();

            messagePointer = buffer.Scan().First();
            Assert.AreEqual(id3, messagePointer.Message.EventId);
            messagePointer.MarkSent();
        }
        public void lowest_retry_doesnt_assume_order()
        {
            var buffer = new StreamBuffer(10, 10, -1, true);

            buffer.AddRetry(BuildMessageAt(Guid.NewGuid(), 4));
            buffer.AddRetry(BuildMessageAt(Guid.NewGuid(), 2));
            buffer.AddRetry(BuildMessageAt(Guid.NewGuid(), 3));
            Assert.AreEqual(2, buffer.GetLowestRetry());
        }
Пример #4
0
        public void lowest_retry_doesnt_assume_order()
        {
            var buffer = new StreamBuffer(10, 10, null, true);

            buffer.AddRetry(BuildMessageAt(4));
            buffer.AddRetry(BuildMessageAt(2));
            buffer.AddRetry(BuildMessageAt(3));
            Assert.AreEqual(2, buffer.GetLowestRetry().sequenceNumber);
        }
Пример #5
0
        public void lowest_retry_ignores_replayed_events()
        {
            var buffer = new StreamBuffer(10, 10, -1, true);

            buffer.AddRetry(BuildMessageAt(Guid.NewGuid(), 4));
            buffer.AddRetry(BuildMessageAt(Guid.NewGuid(), 2));
            buffer.AddRetry(BuildMessageAt(Guid.NewGuid(), 3));
            //add parked event
            buffer.AddRetry(new OutstandingMessage(Guid.NewGuid(), null, Helper.BuildFakeEvent(Guid.NewGuid(), "foo", "$persistentsubscription-foo::group-parked", 1), 0));
            Assert.AreEqual(2, buffer.GetLowestRetry());
        }
Пример #6
0
        public void lowest_retry_ignores_replayed_events()
        {
            var buffer = new StreamBuffer(10, 10, null, true);

            buffer.AddRetry(BuildMessageAt(4));
            buffer.AddRetry(BuildMessageAt(2));
            buffer.AddRetry(BuildMessageAt(3));
            //add parked events
            buffer.AddRetry(OutstandingMessage.ForParkedEvent(Helper.BuildFakeEvent(Guid.NewGuid(), "foo", "$persistentsubscription-foo::group-parked", 1)));
            Assert.AreEqual(2, buffer.GetLowestRetry().sequenceNumber);
        }
        public void retried_messages_appear_first()
        {
            var buffer = new StreamBuffer(10, 10, -1, true);
            var id1    = Guid.NewGuid();

            buffer.AddReadMessage(BuildMessageAt(id1, 0));
            var id2 = Guid.NewGuid();

            buffer.AddRetry(BuildMessageAt(id2, 2));
            Assert.AreEqual(2, buffer.BufferCount);
            Assert.AreEqual(1, buffer.RetryBufferCount);
            Assert.AreEqual(1, buffer.ReadBufferCount);

            var messagePointer = buffer.Scan().First();

            Assert.AreEqual(id2, messagePointer.Message.EventId);
            messagePointer.MarkSent();
            Assert.AreEqual(1, buffer.BufferCount);
            Assert.AreEqual(0, buffer.RetryBufferCount);
            Assert.AreEqual(1, buffer.ReadBufferCount);

            messagePointer = buffer.Scan().First();
            Assert.AreEqual(id1, messagePointer.Message.EventId);
            messagePointer.MarkSent();
            Assert.AreEqual(0, buffer.BufferCount);
            Assert.AreEqual(0, buffer.RetryBufferCount);
            Assert.AreEqual(0, buffer.ReadBufferCount);

            Assert.IsFalse(buffer.Live);
        }
Пример #8
0
        public void retried_messages_appear_first()
        {
            var buffer = new StreamBuffer(10, 10, null, true);

            buffer.AddReadMessage(BuildMessageAt(0));
            buffer.AddRetry(BuildMessageAt(2));
            Assert.AreEqual(2, buffer.BufferCount);
            Assert.AreEqual(1, buffer.RetryBufferCount);
            Assert.AreEqual(1, buffer.ReadBufferCount);

            var messagePointer = buffer.Scan().First();

            Assert.AreEqual(GetEventIdFor(2), messagePointer.Message.EventId);
            messagePointer.MarkSent();
            Assert.AreEqual(1, buffer.BufferCount);
            Assert.AreEqual(0, buffer.RetryBufferCount);
            Assert.AreEqual(1, buffer.ReadBufferCount);

            messagePointer = buffer.Scan().First();
            Assert.AreEqual(GetEventIdFor(0), messagePointer.Message.EventId);
            messagePointer.MarkSent();
            Assert.AreEqual(0, buffer.BufferCount);
            Assert.AreEqual(0, buffer.RetryBufferCount);
            Assert.AreEqual(0, buffer.ReadBufferCount);

            Assert.IsFalse(buffer.Live);
        }