public PreSplitScenario(FailedMessageStatus originalStatus)
 {
     UniqueMessageId             = DeterministicGuid.MakeId(MessageId, ReplyToAddress).ToString();
     OriginalFailedMessageStatus = originalStatus;
     FailedMessage = new FailedMessage()
     {
         Id = FailedMessage.MakeDocumentId(UniqueMessageId),
         UniqueMessageId    = UniqueMessageId,
         ProcessingAttempts = new List <FailedMessage.ProcessingAttempt>(),
         Status             = originalStatus,
         FailureGroups      = new List <FailedMessage.FailureGroup>()
     };
 }
Exemplo n.º 2
0
        public async Task Should_discard_edit_if_edited_message_not_unresolved(FailedMessageStatus status)
        {
            var failedMessageId = Guid.NewGuid().ToString("D");

            await CreateFailedMessage(failedMessageId, status);

            var message = CreateEditMessage(failedMessageId);
            await Handler.Handle(message, new TestableMessageHandlerContext());

            using (var session = Store.OpenAsyncSession())
            {
                var failedMessage = await session.LoadAsync <FailedMessage>(FailedMessage.MakeDocumentId(failedMessageId));

                var editOperation = await session.LoadAsync <FailedMessageEdit>(failedMessageId);

                Assert.AreEqual(status, failedMessage.Status);
                Assert.IsNull(editOperation);
            }
            Assert.IsEmpty(Dispatcher.DispatchedMessages);
        }
        async Task <FailedMessage> CreateFailedMessage(string failedMessageId = null, FailedMessageStatus status = FailedMessageStatus.Unresolved)
        {
            failedMessageId = failedMessageId ?? Guid.NewGuid().ToString();
            using (var session = Store.OpenAsyncSession())
            {
                var failedMessage = new FailedMessage
                {
                    UniqueMessageId = failedMessageId,
                    Id                 = FailedMessage.MakeDocumentId(failedMessageId),
                    Status             = status,
                    ProcessingAttempts = new List <FailedMessage.ProcessingAttempt>
                    {
                        new FailedMessage.ProcessingAttempt
                        {
                            MessageId      = Guid.NewGuid().ToString(),
                            FailureDetails = new FailureDetails
                            {
                                AddressOfFailingEndpoint = "OriginalEndpointAddress"
                            }
                        }
                    }
                };
                await session.StoreAsync(failedMessage);

                await session.SaveChangesAsync();

                return(failedMessage);
            }
        }
Exemplo n.º 4
0
        Task <SingleResult <FailedMessage> > GetFailedMessage(MyContext c, string instance, FailedMessageStatus expectedStatus)
        {
            if (c.MessageId == null)
            {
                return(Task.FromResult(SingleResult <FailedMessage> .Empty));
            }

            return(TryGet <FailedMessage>("/api/errors/" + c.UniqueMessageId, f => f.Status == expectedStatus, instance));
        }
 public FailedMessageBuilder(FailedMessageStatus messageStatus)
 {
     this.messageStatus = messageStatus;
 }