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(); }
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]); } } }
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); }
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"); }
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]); } }
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(); } }
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(); }
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); }
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(); }
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); }
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); }
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()); }
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); }
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" } }); }
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"); }
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); }