예제 #1
0
        public MsmqEndpoint(IMsmqEndpointAddress address, IMessageSerializer serializer, IMsmqTransport transport, IMsmqTransport errorTransport)
            : base(address, serializer)
        {
            _tracker = new MessageRetryTracker(5);

            _transport      = transport;
            _errorTransport = errorTransport;

            SetDisposedMessage();
        }
예제 #2
0
        public void IsLimitExceeded_return_false_untill_specified_limit_reached()
        {
            const int retryLimit = 5;

            var          tracker = new MessageRetryTracker(retryLimit);
            const string id      = "qelofjsw";

            for (int i = 0; i < retryLimit; i++)
            {
                Assert.IsFalse(tracker.IsRetryLimitExceeded(id));
                tracker.IncrementRetryCount(id);
            }
            Assert.IsTrue(tracker.IsRetryLimitExceeded(id));
        }
        public void Should_return_false_until_the_limit_is_exceeded()
        {
            const int retryLimit = 5;

            var          tracker = new MessageRetryTracker(retryLimit);
            const string id      = "qelofjsw";

            Exception ex;

            for (int i = 0; i < retryLimit; i++)
            {
                Assert.IsFalse(tracker.IsRetryLimitExceeded(id, out ex));
                tracker.IncrementRetryCount(id, ex);
            }
            Assert.IsTrue(tracker.IsRetryLimitExceeded(id, out ex));
        }
예제 #4
0
        public void Should_reset_once_the_message_was_received()
        {
            const int retryLimit = 5;

            var          tracker = new MessageRetryTracker(retryLimit);
            const string id      = "qelofjsw";

            Assert.IsFalse(tracker.IsRetryLimitExceeded(id));
            tracker.IncrementRetryCount(id);

            tracker.MessageWasReceivedSuccessfully(id);

            for (int i = 0; i < retryLimit; i++)
            {
                Assert.IsFalse(tracker.IsRetryLimitExceeded(id));
                tracker.IncrementRetryCount(id);
            }
            Assert.IsTrue(tracker.IsRetryLimitExceeded(id));
        }