Esempio n. 1
0
        public void KeyParserExtractsConfiguredKeysFromAudit()
        {
            //arrange
            string data;

            using (var reader = new StreamReader(TestHelper.FullPath(Path.Combine("../../TestData", "Audit.json"))))
            {
                data = reader.ReadToEnd();
            }
            const string keyJsonPath = "CorrelationGuid";
            var          messageType =
                "Autobahn.Fulfillment.Contracts.Ordering.NotifyOrderHasBeenCanceled, Autobahn.Fulfillment.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null";
            var mockSettings = Mock.Of <ISettings>(x => x.MessageTypeHandlingFor(messageType) == new MessageTypeHandling
            {
                KeyPaths = new List <JsonPath>
                {
                    new JsonPath(keyJsonPath)
                }
            });
            var fixture = new Fixture().Customize(new AutoMoqCustomization());

            fixture.Register(() => mockSettings);
            var rawMessage   = JsonConvert.DeserializeObject <RawMessage>(data);
            var keyExtractor = fixture.Create <KeyExtractor>();
            var doc          = new MessageDocument();

            //act
            var keys = keyExtractor.GetBusinessKeys(rawMessage.Body, messageType);

            //assert
            keys.ShouldBeEquivalentTo(new Dictionary <string, string>
            {
                { keyJsonPath, "f349702d-1be6-4c65-8f74-de8457ed4ccf" }
            });
        }
 private static void CaptureHeaders(IRawMessage rawMessage, MessageDocument document)
 {
     foreach (var header in rawMessage.Headers)
     {
         document.Headers.Add(header.Key, header.Value);
     }
 }
 private static void CaptureIsError(MessageDocument document)
 {
     document.IsError = document.Headers.ContainsKey(Headers.ExceptionType);
     if (document.IsError)
     {
         if (document.Headers.ContainsKey(MessageBusTechnologies.Common.Headers.Retry))
         {
             document.AdditionalErrorStatus = AdditionalErrorStatus.IsRetry;
         }
         else
         {
             document.AdditionalErrorStatus = AdditionalErrorStatus.Unresolved;
         }
     }
     else
     {
         if (document.Headers.ContainsKey(MessageBusTechnologies.Common.Headers.Retry))
         {
             document.AdditionalErrorStatus = AdditionalErrorStatus.IsRetry;
         }
         else
         {
             document.AdditionalErrorStatus = AdditionalErrorStatus.NotAnError;
         }
     }
 }
        public void ShouldChangeStatusOfOriginalMessageToRetryPendingWhenRetryStarts()
        {
            //arrange
            var fixture = new Fixture().Customize(new AutoMoqCustomization());

            fixture.Register(() => Store);
            var service = fixture.Create <RetryMessagesService>();

            var originalMessge = new MessageDocument();

            originalMessge.AdditionalErrorStatus = AdditionalErrorStatus.Unresolved;
            using (var session = Store.OpenSessionForDefaultTenant())
            {
                session.Store(originalMessge);
                session.SaveChanges();
            }

            //act
            var result = service.Retry(new RetryMessageModel
            {
                RetryIds = new List <long> {
                    originalMessge.Id
                }
            });

            //assert
            using (var session = Store.OpenSessionForDefaultTenant())
            {
                var message = session.Load <MessageDocument>(originalMessge.Id);
                message.AdditionalErrorStatus.Should().Be(AdditionalErrorStatus.RetryPending);
            }
        }
        public void ShouldReturnAdditionalErrorStatusStringRetryPendingWhenItWorks()
        {
            //arrange
            var fixture = new Fixture().Customize(new AutoMoqCustomization());

            fixture.Register(() => Store);
            fixture.Register <ICreateRetryMessagesFromOriginal>(() => new CreateRetryMessageFromOriginalService());
            var service = fixture.Create <RetryMessagesService>();

            var rawMessage     = MessageTestHelpers.GetErrorMessage();
            var originalMessge = new MessageDocument();

            new HeaderParser().AddHeaderInformation(rawMessage, originalMessge);
            using (var session = Store.OpenSessionForDefaultTenant())
            {
                session.Store(originalMessge);
                session.SaveChanges();
            }

            //act
            var result = service.Retry(new RetryMessageModel
            {
                RetryIds = new List <long> {
                    originalMessge.Id
                }
            });

            //assert
            using (var session = Store.OpenSessionForDefaultTenant())
            {
                var message = session.Load <MessageDocument>(originalMessge.Id);
                AssertRetriedMessageHeadersExcludingRetryIdSameAsOriginal(message, originalMessge);
            }
        }
        public void ShouldReturnCanRetryFalseWhenItWorks()
        {
            //arrange
            var fixture = new Fixture().Customize(new AutoMoqCustomization());

            fixture.Register(() => Store);
            var service = fixture.Create <RetryMessagesService>();

            var originalMessge = new MessageDocument();

            using (var session = Store.OpenSessionForDefaultTenant())
            {
                session.Store(originalMessge);
                session.SaveChanges();
            }

            //act
            var result = service.Retry(new RetryMessageModel
            {
                RetryIds = new List <long> {
                    originalMessge.Id
                }
            });

            //assert
            result.RetryMessageItems.First().CanRetryOriginalMessage.Should().BeFalse();
        }
Esempio n. 7
0
 private void Tr_MessageDocument(object sendr, MessageDocument e)
 {
     Console.WriteLine("ID сообщения:{0}\nID отправителя:{1}\nНик отправителя:{2}\nИмя:{3} Фамилия:{4}\nДата:{5}\nНазвание документа:{6}\nMime type:{7}\nID Документа:{8}\nРазмер документа:{9}байт",
                       e.message_id, e.from.id, e.from.username, e.from.first_name, e.from.last_name, e.date, e.file_name, e.mime_type, e.file_id, e.file_size);
     Console.WriteLine("Эскиз[ID Документа:{0} Размер файла:{1}байт Ширина:{2} Высота:{3}]", e.thumb.file_id, e.thumb.file_size, e.thumb.width, e.thumb.height);
     Console.WriteLine();
 }
        public void ShouldNotRetryWhenOriginalMessageIsRetryPending()
        {
            //arrange
            var fixture = new Fixture().Customize(new AutoMoqCustomization());

            fixture.Register(() => Store);
            var service = fixture.Create <RetryMessagesService>();

            var originalMessge = new MessageDocument();

            originalMessge.AdditionalErrorStatus = AdditionalErrorStatus.RetryPending;
            using (var session = Store.OpenSessionForDefaultTenant())
            {
                session.Store(originalMessge);
                session.SaveChanges();
            }

            //act
            var result = service.Retry(new RetryMessageModel
            {
                RetryIds = new List <long> {
                    originalMessge.Id
                }
            });

            //assert
            result.RetryMessageItems.First().IsRetrying.Should().BeFalse();
        }
        public void AddHeaderInformation(IRawMessage rawMessage, MessageDocument document)
        {
            Verify.RequireNotNull(rawMessage, "rawMessage");
            Verify.RequireNotNull(document, "document");

            CaptureHeaders(rawMessage, document);
            CaptureMessageTypes(document);
            CaptureSagaInfo(document);
            CaptureTimeSent(document);
            CaptureContentType(document);
            CaptureProcessingTime(document);
            CaptureIsError(document);
            if (document.IsError)
            {
                if (document.Headers.ContainsKey(Headers.TimeOfFailure) && document.Headers.ContainsKey(Headers.TimeSent))
                {
                    document.TotalTime = Helpers.ToUniversalDateTime(document.Headers[Headers.TimeOfFailure]) -
                                         Helpers.ToUniversalDateTime(document.Headers[Headers.TimeSent]);
                }
            }
            else
            {
                if (document.Headers.ContainsKey(Headers.ProcessingEnded) && document.Headers.ContainsKey(Headers.TimeSent))
                {
                    document.TotalTime = Helpers.ToUniversalDateTime(document.Headers[Headers.ProcessingEnded]) -
                                         Helpers.ToUniversalDateTime(document.Headers[Headers.TimeSent]);
                }
            }
        }
Esempio n. 10
0
        public long Store(IRawMessage message, IQueueSettings queueSettings)
        {
            var retry = new MessageDocument
            {
                ApplicationId = queueSettings.ApplicationId
            };

            headerParser.AddHeaderInformation(message, retry);
            retry.Body = message.Body;
            var expiry = DateTime.UtcNow.AddHours(retry.IsError ? queueSettings.ErrorDocumentExpirationInHours : queueSettings.DocumentExpirationInHours);

            long originalId = -1;

            long.TryParse(message.Headers[Headers.Retry], out originalId);
            long documentIdToReturn = -1;

            //deal with rare transients that happen under load
            var policy = Policy.Handle <Exception>().WaitAndRetry(new TimeSpan[] { TimeSpan.FromMilliseconds(5), TimeSpan.FromMilliseconds(10) }, (exception, retryDelay, context) =>
            {
                logger.ErrorException($"Retrying storage of message document with delay {retryDelay} after exception", exception);
            });

            policy.Execute(() =>
            {
                documentIdToReturn = SaveDocument(queueSettings, originalId, retry, expiry);
            });

            return(documentIdToReturn);
        }
Esempio n. 11
0
        public void AddMessageTest()
        {
            IPagesStorageProviderV30 pagesStorageProvider = mocks.DynamicMock <IPagesStorageProviderV30>();

            mocks.ReplayAll();

            Host.Instance = new Host();

            Collectors.IndexDirectoryProvider = new DummyIndexDirectoryProvider();
            ProviderLoader.SetUp <IIndexDirectoryProviderV30>(typeof(DummyIndexDirectoryProvider), "");

            string messageSubject = "This is the subject of the message";
            string messageBody    = "This is the body of the message";

            DateTime    dt      = DateTime.Now;
            PageContent page    = new PageContent(new PageInfo("pagefullname", pagesStorageProvider, dt), "title", "user-test", dt, "", "content", new string[0], "");
            Message     message = new Message(1, "user-test", messageSubject, dt, messageBody);

            Assert.IsTrue(SearchClass.IndexMessage(message, page));

            List <SearchResult> results = SearchClass.Search(new SearchField[] { SearchField.Content }, "message", SearchOptions.AtLeastOneWord);

            Assert.AreEqual(1, results.Count, "Wrong result length");

            Assert.AreEqual(DocumentType.Message, results[0].DocumentType, "Wrong document type");

            MessageDocument documentMessage = results[0].Document as MessageDocument;

            Assert.AreEqual("This is the subject of the message", documentMessage.Subject, "Wrong title");
            Assert.AreEqual("This is the body of the <b class=\"searchkeyword\">message</b>", documentMessage.HighlightedBody, "Wrong content");
        }
Esempio n. 12
0
        public void KeyParserExtractsConfiguredKeysFromError()
        {
            //arrange
            string data;

            using (var reader = new StreamReader(TestHelper.FullPath(Path.Combine("../../TestData", "Error.json"))))
            {
                data = reader.ReadToEnd();
            }
            const string keyJsonPath = "Ids";
            var          messageType =
                "Autobahn.Configurations.Contracts.Commands.ValidateConfigurations, Autobahn.Configurations.Contracts, Version=1.1.12.0, Culture=neutral, PublicKeyToken=null";
            var mockSettings = Mock.Of <ISettings>(x => x.MessageTypeHandlingFor(messageType) == new MessageTypeHandling
            {
                KeyPaths = new List <JsonPath>
                {
                    new JsonPath(keyJsonPath)
                }
            });
            var fixture = new Fixture().Customize(new AutoMoqCustomization());

            fixture.Register(() => mockSettings);
            var rawMessage   = JsonConvert.DeserializeObject <RawMessage>(data);
            var keyExtraxtor = fixture.Create <KeyExtractor>();
            var doc          = new MessageDocument();

            //act
            var keys = keyExtraxtor.GetBusinessKeys(rawMessage.Body, messageType);

            //assert
            keys.ShouldBeEquivalentTo(new Dictionary <string, string>
            {
                { keyJsonPath, "afecc831-34d4-47ca-b43b-56eb90d4e3b6" }
            });
        }
 private static void CaptureContentType(MessageDocument document)
 {
     if (document.Headers.ContainsKey(Headers.ContentType))
     {
         document.ContentType = document.Headers[Headers.ContentType];
     }
 }
        public void AddMessageTest()
        {
            IPagesStorageProviderV60 pagesStorageProvider = mocks.DynamicMock <IPagesStorageProviderV60>();

            Expect.Call(pagesStorageProvider.CurrentWiki).Return("wiki1").Repeat.Any();

            mocks.ReplayAll();

            Collectors.InitCollectors();
            Collectors.AddProvider(typeof(FSIndexDirectoryProvider), System.Reflection.Assembly.GetAssembly(typeof(FSIndexDirectoryProvider)), "", typeof(IIndexDirectoryProviderV60));
            Host.Instance = new Host();
            Host.Instance.OverridePublicDirectory(testDir);

            ProviderLoader.SetUp <IIndexDirectoryProviderV60>(typeof(FSIndexDirectoryProvider), "");

            string messageSubject = "This is the subject of the message";
            string messageBody    = "This is the body of the message";

            DateTime    dt      = DateTime.Now;
            PageContent page    = new PageContent("pagefullname", pagesStorageProvider, dt, "title", "user-test", dt, "", "content", new string[0], "");
            Message     message = new Message(1, "user-test", messageSubject, dt, messageBody);

            Assert.IsTrue(SearchClass.IndexMessage(message, page));

            List <SearchResult> results = SearchClass.Search("wiki1", new SearchField[] { SearchField.Content }, "message", SearchOptions.AtLeastOneWord);

            Assert.AreEqual(1, results.Count, "Wrong result length");

            Assert.AreEqual(DocumentType.Message, results[0].DocumentType, "Wrong document type");

            MessageDocument documentMessage = results[0].Document as MessageDocument;

            Assert.AreEqual("This is the subject of the message", documentMessage.Subject, "Wrong title");
            Assert.AreEqual("This is the body of the <b class=\"searchkeyword\">message</b>", documentMessage.HighlightedBody, "Wrong content");
        }
 private static void CaptureTimeSent(MessageDocument document)
 {
     if (document.Headers.ContainsKey(Headers.TimeSent))
     {
         document.TimeSent =
             Helpers.ToUniversalDateTime(document.Headers[Headers.TimeSent]);
     }
 }
Esempio n. 16
0
        private bool SetDocumentTemplate(MessageViewModel message, MessageDocument document, string title)
        {
            Visibility = Visibility.Visible;

            HideThumbnail();

            SetTitle(GetFromLabel(message, title));
            SetService(document.Document.FileName);
            SetMessage(string.Empty);

            if (document.Caption != null && !string.IsNullOrWhiteSpace(document.Caption.Text))
            {
                AppendService(", ");
                AppendMessage(document.Caption.Text.Replace("\r\n", "\n").Replace('\n', ' '));
            }

            return(true);

            //var documentMedia = message.Media as TLMessageMediaDocument;
            //if (documentMedia != null)
            //{
            //    var document = documentMedia.Document as TLDocument;
            //    if (document != null)
            //    {
            //        var photoSize = document.Thumb as TLPhotoSize;
            //        var photoCachedSize = document.Thumb as TLPhotoCachedSize;
            //        if (photoCachedSize != null || photoSize != null)
            //        {
            //            Visibility = Visibility.Visible;

            //            FindName(nameof(ThumbRoot));
            //            if (ThumbRoot != null)
            //                ThumbRoot.Visibility = Visibility.Visible;

            //            ThumbRoot.CornerRadius = ThumbEllipse.CornerRadius = default(CornerRadius);
            //            ThumbImage.ImageSource = (ImageSource)DefaultPhotoConverter.Convert(documentMedia.Document, true);
            //        }
            //        else
            //        {
            //            Visibility = Visibility.Visible;

            //            if (ThumbRoot != null)
            //                ThumbRoot.Visibility = Visibility.Collapsed;
            //        }

            //        SetTitle(GetFromLabel(message, title);
            //        SetService(document.FileName;
            //        SetMessage(string.Empty;

            //        if (!string.IsNullOrWhiteSpace(documentMedia.Caption))
            //        {
            //            AppendService(", ";
            //            AppendMessage(documentMedia.Caption.Replace("\r\n", "\n").Replace('\n', ' ');
            //        }
            //    }
            //}
            return(true);
        }
 private static void CaptureProcessingTime(MessageDocument document)
 {
     if (document.Headers.ContainsKey(Headers.ProcessingStarted) &&
         document.Headers.ContainsKey(Headers.ProcessingEnded))
     {
         document.ProcessingTime = Helpers.ToUniversalDateTime(document.Headers[Headers.ProcessingEnded]) -
                                   Helpers.ToUniversalDateTime(document.Headers[Headers.ProcessingStarted]);
     }
 }
 private void SaveDocument(IQueueSettings queueSettings, MessageDocument document, DateTime expiry)
 {
     using (var session = documentStore.OpenSessionForDefaultTenant())
     {
         session.Store(document);
         session.Advanced.GetMetadataFor(document)["Raven-Expiration-Date"] = new RavenJValue(expiry);
         session.SaveChanges();
         logger.Trace("Saved document for message with id {0} from {1}", document.Id, queueSettings.LogInfo);
     }
 }
 private static void CaptureMessageTypes(MessageDocument document)
 {
     if (document.Headers.ContainsKey(Headers.MessageType))
     {
         document.MessageTypes = document.Headers[Headers.MessageType].Split(';').Select(pt =>
         {
             return(new TypeName(pt));
         }).ToList();
     }
 }
Esempio n. 20
0
        public void HeaderParserHasNullSagaOnMessageNotInvolvingSaga()
        {
            //arrange
            var rawMessage   = MessageTestHelpers.GetErrorMessage();
            var headerParser = new HeaderParser();
            var doc          = new MessageDocument();

            //act
            headerParser.AddHeaderInformation(rawMessage, doc);

            //assert
            doc.SagaInfo.Should().BeNull();
        }
Esempio n. 21
0
        public void HeaderParserGetsProperAdditionalErrorStatusFromError()
        {
            //arrange
            var rawMessage   = MessageTestHelpers.GetErrorMessage();
            var headerParser = new HeaderParser();
            var doc          = new MessageDocument();

            //act
            headerParser.AddHeaderInformation(rawMessage, doc);

            //assert
            doc.AdditionalErrorStatus.Should().Be(AdditionalErrorStatus.Unresolved);
        }
Esempio n. 22
0
        public void HeaderParserGetsProperIsErrorFromError()
        {
            //arrange
            var rawMessage   = MessageTestHelpers.GetErrorMessage();
            var headerParser = new HeaderParser();
            var doc          = new MessageDocument();

            //act
            headerParser.AddHeaderInformation(rawMessage, doc);

            //assert
            doc.IsError.Should().BeTrue();
        }
Esempio n. 23
0
        public void HeaderParserGetsProperProcessingTimeFromError()
        {
            //arrange
            var rawMessage   = MessageTestHelpers.GetErrorMessage();
            var headerParser = new HeaderParser();
            var doc          = new MessageDocument();

            //act
            headerParser.AddHeaderInformation(rawMessage, doc);

            //assert
            doc.ProcessingTime.Should().Be(TimeSpan.Zero);
        }
Esempio n. 24
0
        public void HeaderParserGetsProperContentTypeError()
        {
            //arrange
            var rawMessage   = MessageTestHelpers.GetErrorMessage();
            var headerParser = new HeaderParser();
            var doc          = new MessageDocument();

            //act
            headerParser.AddHeaderInformation(rawMessage, doc);

            //assert
            doc.ContentType.Should().Be(ApplicationJsonContentType);
        }
Esempio n. 25
0
        public void HeaderParserGetsProperTimeSentFromError()
        {
            //arrange
            var rawMessage   = MessageTestHelpers.GetErrorMessage();
            var headerParser = new HeaderParser();
            var doc          = new MessageDocument();

            //act
            headerParser.AddHeaderInformation(rawMessage, doc);

            //assert
            doc.TimeSent.Should().Be(DateTime.ParseExact("2014-12-31T16:54:57:747221Z", DateTimeFormat, CultureInfo.InvariantCulture).ToUniversalTime());
        }
Esempio n. 26
0
        public void HeaderParserGetsProperBusTechnologyFromError()
        {
            //arrange
            var rawMessage   = MessageTestHelpers.GetErrorMessage();
            var headerParser = new HeaderParser();
            var doc          = new MessageDocument();

            //act
            headerParser.AddHeaderInformation(rawMessage, doc);

            //assert
            doc.BusTechnology.Should().Be("NServiceBus");
        }
        public void CanProperlyCopyBodyFromDocument()
        {
            //arrange
            var messageDocument = new MessageDocument
            {
                Body = "This is a test"
            };

            //act
            var rawMessage = new RawMessage(messageDocument);

            //assert
            rawMessage.Body.Should().Be(messageDocument.Body);
        }
Esempio n. 28
0
        public void HeaderParserGetsProperHeadersFromError()
        {
            //arrange
            var rawMessage   = MessageTestHelpers.GetErrorMessage();
            var headerParser = new HeaderParser();
            var doc          = new MessageDocument();

            //act
            headerParser.AddHeaderInformation(rawMessage, doc);

            //assert
            doc.Headers.ShouldBeEquivalentTo(new Dictionary <string, string>
            {
                { "NServiceBus.MessageId", "695742b4-58d0-4e3a-83a9-a4120116c48d" },
                { "NServiceBus.CorrelationId", "695742b4-58d0-4e3a-83a9-a4120116c48d" },
                { "NServiceBus.MessageIntent", "Send" },
                { "NServiceBus.Version", "5.0.3" },
                { "NServiceBus.TimeSent", "2014-12-31 16:54:57:747221 Z" },
                { "NServiceBus.ContentType", "application/json" },
                {
                    "NServiceBus.EnclosedMessageTypes",
                    "Autobahn.Configurations.Contracts.Commands.ValidateConfigurations, Autobahn.Configurations.Contracts, Version=1.1.12.0, Culture=neutral, PublicKeyToken=null"
                },
                { "NServiceBus.ConversationId", "d95771ad-eb89-46b3-b8b3-a4120116c48d" },
                { "NServiceBus.OriginatingMachine", "QA1-THD-WEB-1" },
                { "NServiceBus.OriginatingEndpoint", "Autobahn.Configuration.WebAPI" },
                { "NServiceBus.RabbitMQ.CallbackQueue", "Autobahn.Configuration.Host.QA1-APP-01" },
                { "NServiceBus.ReplyToAddress", "Autobahn.Configuration.WebAPI" },
                { "NServiceBus.ExceptionInfo.ExceptionType", "Raven.Abstractions.Exceptions.ConcurrencyException" },
                {
                    "NServiceBus.ExceptionInfo.Message",
                    "PUT attempted on : ConfigurationResponseDocuments/afecc831-34d4-47ca-b43b-56eb90d4e3b6 while it is being locked by another transaction"
                },
                { "NServiceBus.ExceptionInfo.Source", "Raven.Client.Lightweight" },
                {
                    "NServiceBus.ExceptionInfo.StackTrace",
                    "   at Raven.Client.Connection.ServerClient.DirectBatch(IEnumerable`1 commandDatas, OperationMetadata operationMetadata)\r\n   at Raven.Client.Connection.ServerClient.<>c__DisplayClass97.<Batch>b__96(OperationMetadata u)\r\n   at Raven.Client.Connection.ReplicationInformer.TryOperation[T](Func`2 operation, OperationMetadata operationMetadata, OperationMetadata primaryOperationMetadata, Boolean avoidThrowing, T& result, Boolean& wasTimeout)\r\n   at Raven.Client.Connection.ReplicationInformer.ExecuteWithReplication[T](String method, String primaryUrl, OperationCredentials primaryCredentials, Int32 currentRequest, Int32 currentReadStripingBase, Func`2 operation)\r\n   at Raven.Client.Connection.ServerClient.ExecuteWithReplication[T](String method, Func`2 operation)\r\n   at Raven.Client.Connection.ServerClient.Batch(IEnumerable`1 commandDatas)\r\n   at Raven.Client.Document.DocumentSession.SaveChanges()\r\n   at Autobahn.Configurations.Tasks.Handlers.NServiceBus.ValidateConfigurationsHandler.Handle(ValidateConfigurations message) in z:\\BuildAgent\\Work\\fdf076c7251fe009\\app\\Autobahn.Configurations.Tasks\\Handlers\\NServiceBus\\ValidateConfigurationsHandler.cs:line 74\r\n   at lambda_method(Closure , Object , Object )\r\n   at NServiceBus.Unicast.MessageHandlerRegistry.Invoke(Object handler, Object message, Dictionary`2 dictionary) in c:\\BuildAgent\\work\\1b05a2fea6e4cd32\\src\\NServiceBus.Core\\Unicast\\MessageHandlerRegistry.cs:line 126\r\n   at NServiceBus.Unicast.MessageHandlerRegistry.InvokeHandle(Object handler, Object message) in c:\\BuildAgent\\work\\1b05a2fea6e4cd32\\src\\NServiceBus.Core\\Unicast\\MessageHandlerRegistry.cs:line 84\r\n   at NServiceBus.LoadHandlersBehavior.<Invoke>b__1(Object handlerInstance, Object message) in c:\\BuildAgent\\work\\1b05a2fea6e4cd32\\src\\NServiceBus.Core\\Unicast\\Behaviors\\LoadHandlersBehavior.cs:line 41\r\n   at NServiceBus.InvokeHandlersBehavior.Invoke(IncomingContext context, Action next) in c:\\BuildAgent\\work\\1b05a2fea6e4cd32\\src\\NServiceBus.Core\\Unicast\\Behaviors\\InvokeHandlersBehavior.cs:line 24\r\n   at NServiceBus.BehaviorChain`1.Invoke() in c:\\BuildAgent\\work\\1b05a2fea6e4cd32\\src\\NServiceBus.Core\\Pipeline\\BehaviorChain.cs:line 39\r\n   at NServiceBus.SetCurrentMessageBeingHandledBehavior.Invoke(IncomingContext context, Action next) in c:\\BuildAgent\\work\\1b05a2fea6e4cd32\\src\\NServiceBus.Core\\Unicast\\Behaviors\\SetCurrentMessageBeingHandledBehavior.cs:line 17\r\n   at NServiceBus.BehaviorChain`1.Invoke() in c:\\BuildAgent\\work\\1b05a2fea6e4cd32\\src\\NServiceBus.Core\\Pipeline\\BehaviorChain.cs:line 39\r\n   at NServiceBus.LoadHandlersBehavior.Invoke(IncomingContext context, Action next) in c:\\BuildAgent\\work\\1b05a2fea6e4cd32\\src\\NServiceBus.Core\\Unicast\\Behaviors\\LoadHandlersBehavior.cs:line 46\r\n   at NServiceBus.BehaviorChain`1.Invoke() in c:\\BuildAgent\\work\\1b05a2fea6e4cd32\\src\\NServiceBus.Core\\Pipeline\\BehaviorChain.cs:line 39\r\n   at NServiceBus.ApplyIncomingMessageMutatorsBehavior.Invoke(IncomingContext context, Action next) in c:\\BuildAgent\\work\\1b05a2fea6e4cd32\\src\\NServiceBus.Core\\MessageMutator\\ApplyIncomingMessageMutatorsBehavior.cs:line 23\r\n   at NServiceBus.BehaviorChain`1.Invoke() in c:\\BuildAgent\\work\\1b05a2fea6e4cd32\\src\\NServiceBus.Core\\Pipeline\\BehaviorChain.cs:line 39\r\n   at NServiceBus.ExecuteLogicalMessagesBehavior.Invoke(IncomingContext context, Action next) in c:\\BuildAgent\\work\\1b05a2fea6e4cd32\\src\\NServiceBus.Core\\Unicast\\Messages\\ExecuteLogicalMessagesBehavior.cs:line 24\r\n   at NServiceBus.BehaviorChain`1.Invoke() in c:\\BuildAgent\\work\\1b05a2fea6e4cd32\\src\\NServiceBus.Core\\Pipeline\\BehaviorChain.cs:line 39\r\n   at NServiceBus.CallbackInvocationBehavior.Invoke(IncomingContext context, Action next) in c:\\BuildAgent\\work\\1b05a2fea6e4cd32\\src\\NServiceBus.Core\\Unicast\\Behaviors\\CallbackInvocationBehavior.cs:line 23\r\n   at NServiceBus.BehaviorChain`1.Invoke() in c:\\BuildAgent\\work\\1b05a2fea6e4cd32\\src\\NServiceBus.Core\\Pipeline\\BehaviorChain.cs:line 39\r\n   at NServiceBus.DeserializeLogicalMessagesBehavior.Invoke(IncomingContext context, Action next) in c:\\BuildAgent\\work\\1b05a2fea6e4cd32\\src\\NServiceBus.Core\\Unicast\\Messages\\DeserializeLogicalMessagesBehavior.cs:line 49\r\n   at NServiceBus.BehaviorChain`1.Invoke() in c:\\BuildAgent\\work\\1b05a2fea6e4cd32\\src\\NServiceBus.Core\\Pipeline\\BehaviorChain.cs:line 39\r\n   at NServiceBus.ApplyIncomingTransportMessageMutatorsBehavior.Invoke(IncomingContext context, Action next) in c:\\BuildAgent\\work\\1b05a2fea6e4cd32\\src\\NServiceBus.Core\\MessageMutator\\ApplyIncomingTransportMessageMutatorsBehavior.cs:line 20\r\n   at NServiceBus.BehaviorChain`1.Invoke() in c:\\BuildAgent\\work\\1b05a2fea6e4cd32\\src\\NServiceBus.Core\\Pipeline\\BehaviorChain.cs:line 39\r\n   at NServiceBus.SubscriptionReceiverBehavior.Invoke(IncomingContext context, Action next) in c:\\BuildAgent\\work\\1b05a2fea6e4cd32\\src\\NServiceBus.Core\\Unicast\\Subscriptions\\MessageDrivenSubscriptions\\SubscriptionReceiverBehavior.cs:line 31\r\n   at NServiceBus.BehaviorChain`1.Invoke() in c:\\BuildAgent\\work\\1b05a2fea6e4cd32\\src\\NServiceBus.Core\\Pipeline\\BehaviorChain.cs:line 39\r\n   at NServiceBus.UnitOfWorkBehavior.Invoke(IncomingContext context, Action next) in c:\\BuildAgent\\work\\1b05a2fea6e4cd32\\src\\NServiceBus.Core\\UnitOfWork\\UnitOfWorkBehavior.cs:line 43\r\n   at NServiceBus.BehaviorChain`1.Invoke() in c:\\BuildAgent\\work\\1b05a2fea6e4cd32\\src\\NServiceBus.Core\\Pipeline\\BehaviorChain.cs:line 39\r\n   at NServiceBus.Transports.RabbitMQ.OpenPublishChannelBehavior.Invoke(IncomingContext context, Action next) in c:\\BuildAgent\\work\\41ea81d808fdfd62\\src\\NServiceBus.RabbitMQ\\OpenPublishChannelBehavior.cs:line 19\r\n   at NServiceBus.BehaviorChain`1.Invoke() in c:\\BuildAgent\\work\\1b05a2fea6e4cd32\\src\\NServiceBus.Core\\Pipeline\\BehaviorChain.cs:line 39\r\n   at NServiceBus.ChildContainerBehavior.Invoke(IncomingContext context, Action next) in c:\\BuildAgent\\work\\1b05a2fea6e4cd32\\src\\NServiceBus.Core\\Unicast\\Behaviors\\ChildContainerBehavior.cs:line 17\r\n   at NServiceBus.BehaviorChain`1.Invoke() in c:\\BuildAgent\\work\\1b05a2fea6e4cd32\\src\\NServiceBus.Core\\Pipeline\\BehaviorChain.cs:line 39\r\n   at NServiceBus.ProcessingStatisticsBehavior.Invoke(IncomingContext context, Action next) in c:\\BuildAgent\\work\\1b05a2fea6e4cd32\\src\\NServiceBus.Core\\Monitoring\\ProcessingStatisticsBehavior.cs:line 23\r\n   at NServiceBus.BehaviorChain`1.Invoke() in c:\\BuildAgent\\work\\1b05a2fea6e4cd32\\src\\NServiceBus.Core\\Pipeline\\BehaviorChain.cs:line 39\r\n   at NServiceBus.AuditBehavior.Invoke(IncomingContext context, Action next) in c:\\BuildAgent\\work\\1b05a2fea6e4cd32\\src\\NServiceBus.Core\\Audit\\AuditBehavior.cs:line 20\r\n   at NServiceBus.BehaviorChain`1.Invoke() in c:\\BuildAgent\\work\\1b05a2fea6e4cd32\\src\\NServiceBus.Core\\Pipeline\\BehaviorChain.cs:line 39\r\n   at NServiceBus.Pipeline.PipelineExecutor.Execute[T](BehaviorChain`1 pipelineAction, T context) in c:\\BuildAgent\\work\\1b05a2fea6e4cd32\\src\\NServiceBus.Core\\Pipeline\\PipelineExecutor.cs:line 127\r\n   at NServiceBus.Pipeline.PipelineExecutor.InvokePipeline[TContext](IEnumerable`1 behaviors, TContext context) in c:\\BuildAgent\\work\\1b05a2fea6e4cd32\\src\\NServiceBus.Core\\Pipeline\\PipelineExecutor.cs:line 74\r\n   at NServiceBus.Pipeline.PipelineExecutor.InvokeReceivePhysicalMessagePipeline() in c:\\BuildAgent\\work\\1b05a2fea6e4cd32\\src\\NServiceBus.Core\\Pipeline\\PipelineExecutor.cs:line 100\r\n   at NServiceBus.Unicast.UnicastBus.TransportMessageReceived(Object sender, TransportMessageReceivedEventArgs e) in c:\\BuildAgent\\work\\1b05a2fea6e4cd32\\src\\NServiceBus.Core\\Unicast\\UnicastBus.cs:line 826\r\n   at NServiceBus.Unicast.Transport.TransportReceiver.OnTransportMessageReceived(TransportMessage msg) in c:\\BuildAgent\\work\\1b05a2fea6e4cd32\\src\\NServiceBus.Core\\Unicast\\Transport\\TransportReceiver.cs:line 410\r\n   at NServiceBus.Unicast.Transport.TransportReceiver.ProcessMessage(TransportMessage message) in c:\\BuildAgent\\work\\1b05a2fea6e4cd32\\src\\NServiceBus.Core\\Unicast\\Transport\\TransportReceiver.cs:line 343\r\n   at NServiceBus.Unicast.Transport.TransportReceiver.TryProcess(TransportMessage message) in c:\\BuildAgent\\work\\1b05a2fea6e4cd32\\src\\NServiceBus.Core\\Unicast\\Transport\\TransportReceiver.cs:line 227\r\n   at NServiceBus.Transports.RabbitMQ.RabbitMqDequeueStrategy.ConsumeMessages(Object state) in c:\\BuildAgent\\work\\41ea81d808fdfd62\\src\\NServiceBus.RabbitMQ\\RabbitMqDequeueStrategy.cs:line 186"
                },
                { "NServiceBus.FailedQ", "Autobahn.Configuration.Host@QA1-APP-01" },
                { "NServiceBus.TimeOfFailure", "2014-12-31 16:56:02:891973 Z" },
                { "NServiceBus.Retries.Timestamp", "2014-12-31 16:54:58:516940 Z" },
                { "NServiceBus.Timeout.RouteExpiredTimeoutTo", "Autobahn.Configuration.Host@QA1-APP-02" },
                { "NServiceBus.Timeout.Expire", "2014-12-31 16:56:01:204458 Z" },
                { "WinIdName", "" },
                { "$.diagnostics.hostid", "dd0264d6ebaaa79264f4875f0cd3cc9c" },
                { "$.diagnostics.hostdisplayname", "QA1-APP-01" },
                { "$.diagnostics.originating.hostid", "e2ee89227f61d89c49f32dec35116165" }
            });
        }
Esempio n. 29
0
        public void HeaderParserGetsProperNServiceSagaInfoFromAudit()
        {
            //arrange
            var rawMessage   = MessageTestHelpers.GetAuditMessage();
            var headerParser = new HeaderParser();
            var doc          = new MessageDocument();

            //act
            headerParser.AddHeaderInformation(rawMessage, doc);

            //assert
            doc.SagaInfo.Should().NotBeNull();
            doc.SagaInfo.Class.Should().Be("Autobahn.Fulfillment.Tasks.Sagas.FulfillmentSaga");
            doc.SagaInfo.Key.Should().Be("3b654483-a8ea-470b-8c78-a4110184fa8c");
        }
Esempio n. 30
0
        public void HeaderParserGetsProperAdditionalErrorStatusFromAuditThatIsRetry()
        {
            //arrange
            var rawMessage   = MessageTestHelpers.GetAuditMessage();
            var headerParser = new HeaderParser();
            var doc          = new MessageDocument();

            doc.Headers.Add(Headers.Retry, "foo");

            //act
            headerParser.AddHeaderInformation(rawMessage, doc);

            //assert
            doc.AdditionalErrorStatus.Should().Be(AdditionalErrorStatus.IsRetry);
        }