public async Task calls_all_the_missing_handlers() { using (var host = JasperHost.For(x => { x.Extensions.UseMessageTrackingTestingSupport(); x.Services.AddSingleton <IMissingHandler, RecordingMissingHandler>(); x.Services.AddSingleton <IMissingHandler, RecordingMissingHandler2>(); x.Services.AddSingleton <IMissingHandler, RecordingMissingHandler3>(); })) { var message = new MessageWithNoHandler(); await host.ExecuteAndWait(x => x.Enqueue(message)); for (int i = 0; i < 4; i++) { if (RecordingMissingHandler.Recorded.Any()) { break; } await Task.Delay(250); } RecordingMissingHandler.Recorded.Single().Message.ShouldBeSameAs(message); RecordingMissingHandler2.Recorded.Single().Message.ShouldBeSameAs(message); RecordingMissingHandler3.Recorded.Single().Message.ShouldBeSameAs(message); } }
public async Task missing_handlers_are_called() { NoMessageHandler1.Reset(); NoMessageHandler2.Reset(); with(r => { r.Logging.UseConsoleLogging = true; r.Services.AddTransient <IMissingHandler, NoMessageHandler1>(); r.Services.AddTransient <IMissingHandler, NoMessageHandler2>(); // Hack until we get a default queue r.Publish.Message <MessageWithNoHandler>().To("loopback://incoming"); }); var msg1 = new MessageWithNoHandler(); await Bus.SendAndWait(msg1); await NoMessageHandler1.Finished; await NoMessageHandler2.Finished; NoMessageHandler1.Handled.Single().Message.ShouldBe(msg1); NoMessageHandler2.Handled.Single().Message.ShouldBe(msg1); }