Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
        }