Skip to content

Commit c24cecb

Browse files
authored
Merge pull request #192 from devlead/feature/singletonRoutes
Refactor MockHttp to register response builder in DI container
2 parents e074bbb + 0841390 commit c24cecb

1 file changed

Lines changed: 4 additions & 2 deletions

File tree

src/Devlead.Testing.MockHttp/IServiceCollectionExtensions.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,11 @@ public static IServiceCollection AddMockHttpClient<T>(
1111
this IServiceCollection services
1212
)
1313
{
14+
services.AddSingleton(Routes<T>.GetResponseBuilder);
15+
1416
static MockHttpClient CreateClient(IServiceProvider provider)
1517
{
16-
var client = new MockHttpClient(Routes<T>.GetResponseBuilder(provider));
18+
var client = new MockHttpClient(provider.GetRequiredService<Func<HttpRequestMessage, HttpResponseMessage>>());
1719
foreach(var service in provider.GetServices<ConfigureHttpClient<T>>())
1820
{
1921
service?.Invoke(client);
@@ -22,7 +24,7 @@ static MockHttpClient CreateClient(IServiceProvider provider)
2224
}
2325

2426
static MockHttpMessageHandlerFactory CreateHttpMessageHandlerFactory(IServiceProvider provider)
25-
=> new(Routes<T>.GetResponseBuilder(provider));
27+
=> new(provider.GetRequiredService<Func<HttpRequestMessage, HttpResponseMessage>>());
2628

2729
return services
2830
.AddTransient<HttpClient>(provider => provider.GetRequiredService<MockHttpClient>())

0 commit comments

Comments
 (0)