diff --git a/src/Testing/CoreTests/Runtime/Routing/routing_rules.cs b/src/Testing/CoreTests/Runtime/Routing/routing_rules.cs index 2e9c48476..f255b3a69 100644 --- a/src/Testing/CoreTests/Runtime/Routing/routing_rules.cs +++ b/src/Testing/CoreTests/Runtime/Routing/routing_rules.cs @@ -87,6 +87,18 @@ public async Task explicit_routing_to_local_wins() .Single().Destination.ShouldBe(new Uri("local://purple")); } + [Fact] + public async Task capture_message_types_from_explicit_rules() + { + using var host = await Host.CreateDefaultBuilder() + .UseWolverine(opts => + { + opts.PublishMessage().ToLocalQueue("purple"); + }).StartAsync(); + + host.GetRuntime().Options.HandlerGraph.AllMessageTypes().ShouldContain(typeof(BlueMessage)); + } + #region sample_using_preview_subscriptions public static void using_preview_subscriptions(IMessageBus bus) diff --git a/src/Wolverine/WolverineOptions.Endpoints.cs b/src/Wolverine/WolverineOptions.Endpoints.cs index 7be74fd03..1866ea541 100644 --- a/src/Wolverine/WolverineOptions.Endpoints.cs +++ b/src/Wolverine/WolverineOptions.Endpoints.cs @@ -101,6 +101,8 @@ public PublishingExpression Publish() /// public PublishingExpression PublishMessage() { + RegisterMessageType(typeof(TMessageType)); + var expression = new PublishingExpression(this) { AutoAddSubscriptions = true