|
6 | 6 | using JsonApiToolkit.Tests.Models; |
7 | 7 | using Microsoft.AspNetCore.Http; |
8 | 8 | using Microsoft.AspNetCore.Mvc; |
| 9 | +using Microsoft.Extensions.DependencyInjection; |
9 | 10 | using Microsoft.Extensions.Logging; |
10 | 11 | using Moq; |
11 | 12 |
|
12 | 13 | namespace JsonApiToolkit.Tests.Controllers; |
13 | 14 |
|
14 | 15 | public class TestJsonApiController : JsonApiController |
15 | 16 | { |
16 | | - public TestJsonApiController(ILogger<JsonApiController> logger, IJsonApiQueryParser queryParser) |
17 | | - : base(logger, queryParser) { } |
18 | | - |
19 | 17 | public IActionResult TestJsonApiOk(TestEntity entity) |
20 | 18 | { |
21 | 19 | return JsonApiOk(entity, "testEntities"); |
@@ -48,16 +46,25 @@ public class JsonApiControllerTests |
48 | 46 |
|
49 | 47 | public JsonApiControllerTests() |
50 | 48 | { |
51 | | - var logger = new Mock<ILogger<JsonApiController>>(); |
52 | | - var queryParser = new Mock<IJsonApiQueryParser>(); |
53 | | - queryParser |
54 | | - .Setup(x => x.Parse(It.IsAny<Microsoft.AspNetCore.Http.HttpRequest>())) |
55 | | - .Returns( |
56 | | - new JsonApiToolkit.Models.Querying.QueryParameters { Include = new List<string>() } |
57 | | - ); |
58 | | - _controller = new TestJsonApiController(logger.Object, queryParser.Object); |
59 | | - |
60 | | - var httpContext = new DefaultHttpContext(); |
| 49 | + var services = new ServiceCollection(); |
| 50 | + services.AddLogging(); |
| 51 | + services.AddScoped<IJsonApiQueryParser>(provider => |
| 52 | + { |
| 53 | + var mock = new Mock<IJsonApiQueryParser>(); |
| 54 | + mock.Setup(x => x.Parse(It.IsAny<Microsoft.AspNetCore.Http.HttpRequest>())) |
| 55 | + .Returns( |
| 56 | + new JsonApiToolkit.Models.Querying.QueryParameters |
| 57 | + { |
| 58 | + Include = new List<string>(), |
| 59 | + } |
| 60 | + ); |
| 61 | + return mock.Object; |
| 62 | + }); |
| 63 | + |
| 64 | + var serviceProvider = services.BuildServiceProvider(); |
| 65 | + _controller = new TestJsonApiController(); |
| 66 | + |
| 67 | + var httpContext = new DefaultHttpContext { RequestServices = serviceProvider }; |
61 | 68 | httpContext.Request.Scheme = "https"; |
62 | 69 | httpContext.Request.Host = new HostString("api.example.com"); |
63 | 70 | httpContext.Request.Path = "/test-entities"; |
|
0 commit comments