public void ShouldRemoveTimeoutHeaders()
        {
            //arrange
            var rawMessage = MessageTestHelpers.GetErrorMessage();

            var creator = new CreateRetryMessageFromOriginalService();

            //act
            creator.PrepareMessageForRetry(rawMessage);

            //assert
            rawMessage.Headers.Where(x => x.Key.StartsWith("NServiceBus.Timeout")).Select(x => x.Key).Should().BeEmpty();
        }
        public void ShouldSetTimeSentHeaderToTimeOfRetry()
        {
            //arrange
            var utcNow     = DateTime.UtcNow.AddSeconds(-1);
            var rawMessage = MessageTestHelpers.GetErrorMessage();
            var creator    = new CreateRetryMessageFromOriginalService();

            //act
            creator.PrepareMessageForRetry(rawMessage);

            //assert
            Helpers.ToUniversalDateTime(rawMessage.Headers[Headers.TimeSent]).Should().BeAfter(utcNow);
        }
        public void ShouldNotRemoveOtherHeaders()
        {
            //arrange
            var rawMessage = MessageTestHelpers.GetErrorMessage();

            var creator = new CreateRetryMessageFromOriginalService();

            //act
            creator.PrepareMessageForRetry(rawMessage);

            //assert
            rawMessage.Headers.Select(x => x.Key).Should().BeEquivalentTo("NServiceBus.MessageId",
                                                                          "NServiceBus.CorrelationId", "NServiceBus.MessageIntent", "NServiceBus.Version",
                                                                          "NServiceBus.TimeSent", "NServiceBus.ContentType", "NServiceBus.EnclosedMessageTypes",
                                                                          "WinIdName", "NServiceBus.ConversationId", "NServiceBus.OriginatingMachine",
                                                                          "NServiceBus.OriginatingEndpoint",
                                                                          "NServiceBus.RabbitMQ.CallbackQueue", "NServiceBus.ReplyToAddress");
        }
        public void ShouldRemoveRetryHeaders()
        {
            var errorHeaders = new List <string>
            {
                "NServiceBus.FLRetries",
                "NServiceBus.FailedQ",
                "NServiceBus.TimeOfFailure"
            };
            //arrange
            var rawMessage = MessageTestHelpers.GetErrorMessage();

            var creator = new CreateRetryMessageFromOriginalService();

            //act
            creator.PrepareMessageForRetry(rawMessage);

            //assert
            rawMessage.Headers.Select(x => x.Key).Intersect(errorHeaders).Should().BeEmpty();
            rawMessage.Headers.Where(x => x.Key.StartsWith("NServiceBus.Retries")).Select(x => x.Key).Should().BeEmpty();
        }
        public void ShouldRemoveProcessingHeaders()
        {
            var processingHeaders = new List <string>
            {
                "NServiceBus.ProcessingStarted",
                "NServiceBus.ProcessingEnded",
                "NServiceBus.ProcessingEndpoint",
                "NServiceBus.ProcessingMachine"
            };
            //arrange
            var rawMessage = MessageTestHelpers.GetErrorMessage();

            var creator = new CreateRetryMessageFromOriginalService();

            //act
            creator.PrepareMessageForRetry(rawMessage);

            //assert
            rawMessage.Headers.Select(x => x.Key).Intersect(processingHeaders).Should().BeEmpty();
        }