Пример #1
0
        public void KeepsOnly10MostRecentExceptionDetailsEvenThoughThereMayBeManyMoreFailedDeliveries()
        {
            // arrange
            const string messageId = "bim!";
            errorTracker.MaxRetries = 1000;

            // act
            2000.Times(() => errorTracker.TrackDeliveryFail(messageId, new OmfgExceptionThisIsBad("w00t!")));
            var messageHasFailedMaximumNumberOfTimes = errorTracker.MessageHasFailedMaximumNumberOfTimes(messageId);
            var info = errorTracker.GetPoisonMessageInfo(messageId);

            // assert
            messageHasFailedMaximumNumberOfTimes.ShouldBe(true);
            info.Exceptions.Count().ShouldBe(10);
        }
Пример #2
0
        public void ErrorTrackerRemovesAMessageWhichTimedOut()
        {
            //Arrange
            const string messageId = "testId";
            var          fakeTime  = Time.Now();

            TimeMachine.FixTo(fakeTime);

            //Act
            errorTracker.TrackDeliveryFail(messageId, new Exception());
            errorTracker.TrackDeliveryFail(messageId, new Exception());

            TimeMachine.FixTo(fakeTime.Add(timeoutSpan));

            errorTracker.CheckForMessageTimeout();

            var errorText = errorTracker.GetErrorText(messageId);

            //Assert
            Assert.That(errorText, Is.Empty);
        }