コード例 #1
0
        public void UnRetryableFailService_ends_up_in_dlq_after_1_attempt()
        {
            var service = Container.Resolve <UnRetryableFailService>();
            var request = new UnRetryableFail {
                Name = "World!"
            };

            using (var serviceHost = CreateMessagingService())
            {
                using (var client = serviceHost.MessageFactory.CreateMessageQueueClient())
                {
                    client.Publish(request);
                }

                serviceHost.RegisterHandler <UnRetryableFail>(service.ExecuteAsync);
                serviceHost.Start();

                Assert.That(service.Result, Is.Null);
                Assert.That(service.TimesCalled, Is.EqualTo(1));

                using (var client = serviceHost.MessageFactory.CreateMessageQueueClient())
                {
                    var dlqMessage = client.GetAsync(QueueNames <UnRetryableFail> .Dlq)
                                     .ToMessage <UnRetryableFail>();

                    Assert.That(dlqMessage, Is.Not.Null);
                    Assert.That(dlqMessage.GetBody().Name, Is.EqualTo(request.Name));
                }
            }
        }
コード例 #2
0
        public void UnRetryableFailService_ends_up_in_dlq_after_1_attempt()
        {
            var service = new UnRetryableFailService();

            var request = new UnRetryableFail {
                Name = "World!"
            };

            using (var serviceHost = this.CreateMessagingService()) {
                using (var client = serviceHost.MessageFactory.CreateMessageQueueClient()) {
                    client.Publish(request);
                }

                serviceHost.RegisterHandler <UnRetryableFail>(m => service.Any(m.GetBody()));
                serviceHost.Start();

                Assert.That(service.Result, Is.Null);
                Assert.That(service.TimesCalled, Is.EqualTo(1));

                using (var client = serviceHost.MessageFactory.CreateMessageQueueClient()) {
                    var dlqMessage = client.GetAsync <UnRetryableFail>(MqQueueNames <UnRetryableFail> .Dlq);
                    client.Ack(dlqMessage);

                    Assert.That(dlqMessage, Is.Not.Null);
                    Assert.That(dlqMessage.GetBody().Name, Is.EqualTo(request.Name));
                }
            }
        }