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); }
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); }