@@ -21,14 +21,22 @@ public partial record OtherMessageEvent(string Message)
2121
2222public class DynamicDuckTyping : DuckTyping
2323{
24- protected override IMessageBus CreateMessageBus ( IServiceProvider ? services = null ) =>
25- new DynamicallyMessageBus ( services ?? new MockServiceProvider ( ) ) ;
24+ protected override IMessageBus CreateMessageBus ( IServiceCollection ? services = null )
25+ {
26+ services ??= new ServiceCollection ( ) ;
27+ services . AddSingleton < IMessageBus > ( sp => new DynamicallyMessageBus ( sp ) ) ;
28+ return services . BuildServiceProvider ( ) . GetRequiredService < IMessageBus > ( ) ;
29+ }
2630}
2731
2832public class AutoMapperDuckTyping : DuckTyping
2933{
30- protected override IMessageBus CreateMessageBus ( IServiceProvider ? services = null ) =>
31- new AutoMapperMessageBus ( services ?? new MockServiceProvider ( ) ) ;
34+ protected override IMessageBus CreateMessageBus ( IServiceCollection ? services = null )
35+ {
36+ services ??= new ServiceCollection ( ) ;
37+ services . AddSingleton < IMessageBus > ( sp => new AutoMapperMessageBus ( sp ) ) ;
38+ return services . BuildServiceProvider ( ) . GetRequiredService < IMessageBus > ( ) ;
39+ }
3240
3341 [ Fact ]
3442 public void ExecuteWithExtraCtorArg ( )
@@ -37,7 +45,7 @@ public void ExecuteWithExtraCtorArg()
3745 var services = new ServiceCollection ( ) ;
3846 services . AddSingleton ( handler . Object ) ;
3947 services . AddSingleton ( typeof ( IServiceCollection ) , _ => services ) ;
40- var bus = CreateMessageBus ( services . BuildServiceProvider ( ) ) ;
48+ var bus = CreateMessageBus ( services ) ;
4149
4250 var cmd = new Library2 ::Library . Echo2 ( "Foo" ) ;
4351
@@ -49,7 +57,7 @@ public void ExecuteWithExtraCtorArg()
4957
5058public abstract class DuckTyping
5159{
52- protected abstract IMessageBus CreateMessageBus ( IServiceProvider ? services = null ) ;
60+ protected abstract IMessageBus CreateMessageBus ( IServiceCollection ? services = null ) ;
5361
5462#if NET6_0_OR_GREATER
5563 [ Fact ]
@@ -110,7 +118,7 @@ public void CanHandleDuck()
110118 var services = new ServiceCollection ( ) ;
111119 services . AddSingleton < ICommandHandler < Library1 ::Library . Echo , string > , Library1 ::Library . EchoHandler > ( ) ;
112120 services . AddSingleton ( typeof ( IServiceCollection ) , _ => services ) ;
113- var bus = CreateMessageBus ( services . BuildServiceProvider ( ) ) ;
121+ var bus = CreateMessageBus ( services ) ;
114122
115123 Assert . True ( bus . CanHandle < Library2 ::Library . Echo > ( ) ) ;
116124 Assert . True ( bus . CanHandle ( new Library2 ::Library . Echo ( "Foo" ) ) ) ;
@@ -122,7 +130,7 @@ public void CanExecuteDuck()
122130 var services = new ServiceCollection ( ) ;
123131 services . AddSingleton < ICommandHandler < Library1 ::Library . Echo , string > , Library1 ::Library . EchoHandler > ( ) ;
124132 services . AddSingleton ( typeof ( IServiceCollection ) , _ => services ) ;
125- var bus = CreateMessageBus ( services . BuildServiceProvider ( ) ) ;
133+ var bus = CreateMessageBus ( services ) ;
126134
127135 var cmd = new Library2 ::Library . Echo ( "Foo" ) ;
128136
@@ -135,7 +143,7 @@ public void ExecuteCommand()
135143 var services = new ServiceCollection ( ) ;
136144 services . AddSingleton < ICommandHandler < Library1 ::Library . Echo , string > , Library1 ::Library . EchoHandler > ( ) ;
137145 services . AddSingleton ( typeof ( IServiceCollection ) , _ => services ) ;
138- var bus = CreateMessageBus ( services . BuildServiceProvider ( ) ) ;
146+ var bus = CreateMessageBus ( services ) ;
139147
140148 var cmd = new Library2 ::Library . Echo ( "Foo" ) ;
141149
@@ -150,7 +158,7 @@ public void ExecuteNoOpCommand()
150158 var services = new ServiceCollection ( ) ;
151159 services . AddSingleton < ICommandHandler < Library1 ::Library . NoOp > , Library1 ::Library . NoOpHandler > ( ) ;
152160 services . AddSingleton ( typeof ( IServiceCollection ) , _ => services ) ;
153- var bus = CreateMessageBus ( services . BuildServiceProvider ( ) ) ;
161+ var bus = CreateMessageBus ( services ) ;
154162
155163 var cmd = new Library2 ::Library . NoOp ( ) ;
156164
@@ -163,7 +171,7 @@ public async Task ExecuteAsyncCommandAsync()
163171 var services = new ServiceCollection ( ) ;
164172 services . AddSingleton < IAsyncCommandHandler < Library1 ::Library . EchoAsync , string > , Library1 ::Library . EchoAsyncHandler > ( ) ;
165173 services . AddSingleton ( typeof ( IServiceCollection ) , _ => services ) ;
166- var bus = CreateMessageBus ( services . BuildServiceProvider ( ) ) ;
174+ var bus = CreateMessageBus ( services ) ;
167175
168176 var cmd = new Library2 ::Library . EchoAsync ( "Foo" ) ;
169177
@@ -178,7 +186,7 @@ public async Task ExecuteNoOpAsyncCommandAsync()
178186 var services = new ServiceCollection ( ) ;
179187 services . AddSingleton < IAsyncCommandHandler < Library1 ::Library . NoOpAsync > , Library1 ::Library . NoOpAsyncHandler > ( ) ;
180188 services . AddSingleton ( typeof ( IServiceCollection ) , _ => services ) ;
181- var bus = CreateMessageBus ( services . BuildServiceProvider ( ) ) ;
189+ var bus = CreateMessageBus ( services ) ;
182190
183191 var cmd = new Library2 ::Library . NoOpAsync ( ) ;
184192
0 commit comments