Example #1
0
        public void WhenMessageReachesMaximumNumberOfDelayedRetries_MessageIsDeadlettered()
        {
            var stream = new MemoryStream();
            var writer = new StreamWriter(stream);

            writer.Write("{ Bar: 1 }");
            writer.Flush();
            stream.Position = 0;

            actualDelayedRetryCount = MaxDelayedRetryCount;
            var tm = new TestTransportMessage(typeof(Message).AssemblyQualifiedName);

            tm.SetBody(stream);

            Func <Task> action = () => this.receiver.HandOver(tm);

            action.ShouldThrow <InvalidOperationException>();
            tm.DeadLetterHeaders.Should().NotBeEmpty();
            tm.DelayedDeliveryCount.Should().Be(MaxDelayedRetryCount);
        }