public void AlwaysFailsService_ends_up_in_dlq_after_3_attempts()
		{
			var service = Container.Resolve<AlwaysFailService>();
			var request = new AlwaysFail { Name = "World!" };
			using (var serviceHost = CreateMessagingService())
			{
				using (var client = serviceHost.MessageFactory.CreateMessageQueueClient())
				{
					client.Publish(request);
				}

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

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

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

					Assert.That(dlqMessage, Is.Not.Null);
					Assert.That(dlqMessage.GetBody().Name, Is.EqualTo(request.Name));
				}
			}
		}
Example #2
0
 /// <summary>Anies the given request.</summary>
 ///
 /// <exception cref="NotSupportedException">Thrown when the requested operation is not supported.</exception>
 ///
 /// <param name="request">The request.</param>
 ///
 /// <returns>An object.</returns>
 public object Any(AlwaysFail request)
 {
     this.TimesCalled++;
     throw new NotSupportedException("This service always fails");
 }
Example #3
0
        /// <summary>Anies the given request.</summary>
        ///
        /// <exception cref="NotSupportedException">Thrown when the requested operation is not supported.</exception>
        ///
        /// <param name="request">The request.</param>
        ///
        /// <returns>An object.</returns>
		public object Any(AlwaysFail request)
		{
			this.TimesCalled++;
			throw new NotSupportedException("This service always fails");
		}