Skip to content

Commit

Permalink
Fix service providerFixed tests and PR feedback
Browse files Browse the repository at this point in the history
  • Loading branch information
davidfowl committed May 15, 2021
1 parent 2a25069 commit 01d048c
Show file tree
Hide file tree
Showing 3 changed files with 52 additions and 8 deletions.
2 changes: 1 addition & 1 deletion src/Http/Http.Extensions/src/RequestDelegateFactory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -809,7 +809,7 @@ private class FactoryContext
{
public Type? JsonRequestBodyType { get; set; }
public bool AllowEmptyRequestBody { get; set; }
public IServiceProvider? ServiceProvider { get; set; }
public IServiceProvider? ServiceProvider { get; init; }

public bool UsingTempSourceString { get; set; }
public List<(ParameterExpression, Expression)> TryParseParams { get; } = new();
Expand Down
23 changes: 21 additions & 2 deletions src/Http/Http.Extensions/test/RequestDelegateFactoryTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1200,9 +1200,28 @@ public override void Write(byte[] buffer, int offset, int count)
}
}

private class EmptyServiceProvdier : IServiceProvider
private class EmptyServiceProvdier : IServiceScope, IServiceProvider, IServiceScopeFactory
{
public object? GetService(Type serviceType) => null;
public IServiceProvider ServiceProvider => this;

public IServiceScope CreateScope()
{
return new EmptyServiceProvdier();
}

public void Dispose()
{

}

public object? GetService(Type serviceType)
{
if (serviceType == typeof(IServiceScopeFactory))
{
return this;
}
return null;
}
}

private class TestHttpRequestLifetimeFeature : IHttpRequestLifetimeFeature
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
using System.Linq;
using System.Runtime.CompilerServices;
using Microsoft.AspNetCore.Routing;
using Microsoft.Extensions.DependencyInjection;
using Moq;
using Xunit;

Expand All @@ -28,7 +29,7 @@ private RouteEndpointBuilder GetRouteEndpointBuilder(IEndpointRouteBuilder endpo
[Fact]
public void MapEndpoint_PrecedenceOfMetadata_BuilderMetadataReturned()
{
var builder = new DefaultEndpointRouteBuilder(Mock.Of<IApplicationBuilder>());
var builder = new DefaultEndpointRouteBuilder(new ApplicationBuilder(new EmptyServiceProvdier()));

[HttpMethod("ATTRIBUTE")]
void TestAction()
Expand Down Expand Up @@ -60,7 +61,7 @@ string GetMethod(object metadata)
[Fact]
public void MapGet_BuildsEndpointWithCorrectMethod()
{
var builder = new DefaultEndpointRouteBuilder(Mock.Of<IApplicationBuilder>());
var builder = new DefaultEndpointRouteBuilder(new ApplicationBuilder(new EmptyServiceProvdier()));
_ = builder.MapGet("/", (Action)(() => { }));

var dataSource = GetBuilderEndpointDataSource(builder);
Expand All @@ -80,7 +81,7 @@ public void MapGet_BuildsEndpointWithCorrectMethod()
[Fact]
public void MapPost_BuildsEndpointWithCorrectMethod()
{
var builder = new DefaultEndpointRouteBuilder(Mock.Of<IApplicationBuilder>());
var builder = new DefaultEndpointRouteBuilder(new ApplicationBuilder(new EmptyServiceProvdier()));
_ = builder.MapPost("/", (Action)(() => { }));

var dataSource = GetBuilderEndpointDataSource(builder);
Expand All @@ -100,7 +101,7 @@ public void MapPost_BuildsEndpointWithCorrectMethod()
[Fact]
public void MapPut_BuildsEndpointWithCorrectMethod()
{
var builder = new DefaultEndpointRouteBuilder(Mock.Of<IApplicationBuilder>());
var builder = new DefaultEndpointRouteBuilder(new ApplicationBuilder(new EmptyServiceProvdier()));
_ = builder.MapPut("/", (Action)(() => { }));

var dataSource = GetBuilderEndpointDataSource(builder);
Expand All @@ -120,7 +121,7 @@ public void MapPut_BuildsEndpointWithCorrectMethod()
[Fact]
public void MapDelete_BuildsEndpointWithCorrectMethod()
{
var builder = new DefaultEndpointRouteBuilder(Mock.Of<IApplicationBuilder>());
var builder = new DefaultEndpointRouteBuilder(new ApplicationBuilder(new EmptyServiceProvdier()));
_ = builder.MapDelete("/", (Action)(() => { }));

var dataSource = GetBuilderEndpointDataSource(builder);
Expand Down Expand Up @@ -148,5 +149,29 @@ public HttpMethodAttribute(params string[] httpMethods)
HttpMethods = httpMethods;
}
}

private class EmptyServiceProvdier : IServiceScope, IServiceProvider, IServiceScopeFactory
{
public IServiceProvider ServiceProvider => this;

public IServiceScope CreateScope()
{
return new EmptyServiceProvdier();
}

public void Dispose()
{

}

public object? GetService(Type serviceType)
{
if (serviceType == typeof(IServiceScopeFactory))
{
return this;
}
return null;
}
}
}
}

0 comments on commit 01d048c

Please sign in to comment.