Skip to content

Commit 2872943

Browse files
committed
fix tests
1 parent ea3e4f6 commit 2872943

File tree

3 files changed

+73
-74
lines changed

3 files changed

+73
-74
lines changed

JsonApiDotNetCore/Extensions/IServiceCollectionExtensions.cs

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,16 @@
66

77
namespace JsonApiDotNetCore.Extensions
88
{
9-
public static class IServiceCollectionExtensions
10-
{
11-
public static void AddJsonApi(this IServiceCollection services, Action<IJsonApiModelConfiguration> configurationAction)
9+
public static class IServiceCollectionExtensions
1210
{
13-
services.AddTransient(_ => {
14-
var configBuilder = new JsonApiConfigurationBuilder(configurationAction);
15-
var config = configBuilder.Build();
16-
return (IRouter)new Router(config, new RouteBuilder(config), new ControllerBuilder());
17-
});
11+
public static void AddJsonApi(this IServiceCollection services, Action<IJsonApiModelConfiguration> configurationAction)
12+
{
13+
var configBuilder = new JsonApiConfigurationBuilder(configurationAction);
14+
var config = configBuilder.Build();
15+
services.AddTransient(_ =>
16+
{
17+
return (IRouter)new Router(config, new RouteBuilder(config), new ControllerBuilder());
18+
});
19+
}
1820
}
19-
}
2021
}
Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
11
using System;
2+
using System.Threading.Tasks;
23
using JsonApiDotNetCore.Routing;
34
using Microsoft.AspNetCore.Http;
45

56
namespace JsonApiDotNetCoreTests.Helpers
67
{
7-
public class TestRouter : IRouter
8-
{
9-
public bool DidHandleRoute { get; set; }
10-
public bool HandleJsonApiRoute(HttpContext context, IServiceProvider serviceProvider)
8+
public class TestRouter : IRouter
119
{
12-
DidHandleRoute = true;
13-
return true;
10+
public bool DidHandleRoute { get; set; }
11+
12+
Task<bool> IRouter.HandleJsonApiRouteAsync(HttpContext context, IServiceProvider serviceProvider)
13+
{
14+
DidHandleRoute = true;
15+
return Task.Run(() => true);
16+
}
1417
}
15-
}
1618
}

JsonApiDotNetCoreTests/Routing/UnitTests/RouterTests.cs

Lines changed: 54 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -7,98 +7,94 @@
77
using JsonApiDotNetCore.Routing;
88
using JsonApiDotNetCore.Controllers;
99
using Microsoft.AspNetCore.Mvc;
10-
using System.Text;
11-
using System.Threading;
12-
using System.Threading.Tasks;
13-
using Microsoft.AspNetCore.Http.Internal;
1410
using System.IO;
1511

1612
namespace JsonApiDotNetCoreTests.Routing.UnitTests
1713
{
1814
public class RouterTests
1915
{
2016
[Fact]
21-
public void HandleJsonApiRoute_ReturnsFalse_IfTheRouteCannotBeBuilt()
17+
public async void HandleJsonApiRoute_ReturnsFalse_IfTheRouteCannotBeBuilt()
2218
{
23-
//--> arrange
24-
var httpContextMock = new Mock<HttpContext>();
25-
httpContextMock.SetupAllProperties();
19+
//--> arrange
20+
var httpContextMock = new Mock<HttpContext>();
21+
httpContextMock.SetupAllProperties();
2622

27-
// since this is an empty stub, IRouteBuilder.BuildFromRequest() will always return null
28-
var routeBuilderMock = new Mock<IRouteBuilder>();
23+
// since this is an empty stub, IRouteBuilder.BuildFromRequest() will always return null
24+
var routeBuilderMock = new Mock<IRouteBuilder>();
2925

30-
var router = new Router(null, routeBuilderMock.Object, null);
26+
var router = new Router(null, routeBuilderMock.Object, null);
3127

32-
//--> act
33-
var result = router.HandleJsonApiRoute(httpContextMock.Object, null);
28+
//--> act
29+
var result = await router.HandleJsonApiRouteAsync(httpContextMock.Object, null);
3430

35-
//--> assert
36-
Assert.False(result);
31+
//--> assert
32+
Assert.False(result);
3733
}
3834

3935
[Fact]
40-
public void HandleJsonApiRoute_CallsGetMethod_ForGetRequest()
36+
public async void HandleJsonApiRoute_CallsGetMethod_ForGetRequest()
4137
{
42-
//--> arrange
43-
var httpContextMock = new Mock<HttpContext>();
44-
httpContextMock.SetupAllProperties();
45-
var httpResponseMock = new Mock<HttpResponse>();
46-
httpResponseMock.Setup(r => r.Body).Returns(new MemoryStream());
47-
httpContextMock.Setup(c => c.Response).Returns(httpResponseMock.Object);
38+
//--> arrange
39+
var httpContextMock = new Mock<HttpContext>();
40+
httpContextMock.SetupAllProperties();
41+
var httpResponseMock = new Mock<HttpResponse>();
42+
httpResponseMock.Setup(r => r.Body).Returns(new MemoryStream());
43+
httpContextMock.Setup(c => c.Response).Returns(httpResponseMock.Object);
4844

49-
var route = new Route(null, "GET", null, null, null);
45+
var route = new Route(null, "GET", null, null, null);
5046

51-
var routeBuilderMock = new Mock<IRouteBuilder>();
52-
routeBuilderMock.Setup(rb => rb.BuildFromRequest(null)).Returns(route);
47+
var routeBuilderMock = new Mock<IRouteBuilder>();
48+
routeBuilderMock.Setup(rb => rb.BuildFromRequest(null)).Returns(route);
5349

54-
var serviceProviderMock = new Mock<IServiceProvider>();
50+
var serviceProviderMock = new Mock<IServiceProvider>();
5551

56-
var controllerMock = new Mock<IJsonApiController>();
57-
controllerMock.Setup(c => c.Get()).Returns(new OkObjectResult(null));
58-
var controllerBuilder = new Mock<IControllerBuilder>();
59-
controllerBuilder.Setup(cb => cb.BuildController(It.IsAny<JsonApiContext>())).Returns(controllerMock.Object);
52+
var controllerMock = new Mock<IJsonApiController>();
53+
controllerMock.Setup(c => c.Get()).Returns(new OkObjectResult(null));
54+
var controllerBuilder = new Mock<IControllerBuilder>();
55+
controllerBuilder.Setup(cb => cb.BuildController(It.IsAny<JsonApiContext>())).Returns(controllerMock.Object);
6056

61-
var router = new Router(new JsonApiModelConfiguration(), routeBuilderMock.Object, controllerBuilder.Object);
57+
var router = new Router(new JsonApiModelConfiguration(), routeBuilderMock.Object, controllerBuilder.Object);
6258

63-
//--> act
64-
var result = router.HandleJsonApiRoute(httpContextMock.Object, serviceProviderMock.Object);
59+
//--> act
60+
var result = await router.HandleJsonApiRouteAsync(httpContextMock.Object, serviceProviderMock.Object);
6561

66-
//--> assert
67-
Assert.True(result);
68-
controllerMock.Verify(c => c.Get());
62+
//--> assert
63+
Assert.True(result);
64+
controllerMock.Verify(c => c.Get());
6965
}
7066

7167
[Fact]
72-
public void HandleJsonApiRoute_CallsGetIdMethod_ForGetIdRequest()
68+
public async void HandleJsonApiRoute_CallsGetIdMethod_ForGetIdRequest()
7369
{
74-
//--> arrange
75-
const string resourceId = "1";
76-
var httpContextMock = new Mock<HttpContext>();
77-
httpContextMock.SetupAllProperties();
78-
var httpResponseMock = new Mock<HttpResponse>();
79-
httpResponseMock.Setup(r => r.Body).Returns(new MemoryStream());
80-
httpContextMock.Setup(c => c.Response).Returns(httpResponseMock.Object);
70+
//--> arrange
71+
const string resourceId = "1";
72+
var httpContextMock = new Mock<HttpContext>();
73+
httpContextMock.SetupAllProperties();
74+
var httpResponseMock = new Mock<HttpResponse>();
75+
httpResponseMock.Setup(r => r.Body).Returns(new MemoryStream());
76+
httpContextMock.Setup(c => c.Response).Returns(httpResponseMock.Object);
8177

82-
var route = new Route(null, "GET", resourceId, null, null);
78+
var route = new Route(null, "GET", resourceId, null, null);
8379

84-
var routeBuilderMock = new Mock<IRouteBuilder>();
85-
routeBuilderMock.Setup(rb => rb.BuildFromRequest(null)).Returns(route);
80+
var routeBuilderMock = new Mock<IRouteBuilder>();
81+
routeBuilderMock.Setup(rb => rb.BuildFromRequest(null)).Returns(route);
8682

87-
var serviceProviderMock = new Mock<IServiceProvider>();
83+
var serviceProviderMock = new Mock<IServiceProvider>();
8884

89-
var controllerMock = new Mock<IJsonApiController>();
90-
controllerMock.Setup(c => c.Get(resourceId)).Returns(new OkObjectResult(null));
91-
var controllerBuilder = new Mock<IControllerBuilder>();
92-
controllerBuilder.Setup(cb => cb.BuildController(It.IsAny<JsonApiContext>())).Returns(controllerMock.Object);
85+
var controllerMock = new Mock<IJsonApiController>();
86+
controllerMock.Setup(c => c.Get(resourceId)).Returns(new OkObjectResult(null));
87+
var controllerBuilder = new Mock<IControllerBuilder>();
88+
controllerBuilder.Setup(cb => cb.BuildController(It.IsAny<JsonApiContext>())).Returns(controllerMock.Object);
9389

94-
var router = new Router(new JsonApiModelConfiguration(), routeBuilderMock.Object, controllerBuilder.Object);
90+
var router = new Router(new JsonApiModelConfiguration(), routeBuilderMock.Object, controllerBuilder.Object);
9591

96-
//--> act
97-
var result = router.HandleJsonApiRoute(httpContextMock.Object, serviceProviderMock.Object);
92+
//--> act
93+
var result = await router.HandleJsonApiRouteAsync(httpContextMock.Object, serviceProviderMock.Object);
9894

99-
//--> assert
100-
Assert.True(result);
101-
controllerMock.Verify(c => c.Get(resourceId));
95+
//--> assert
96+
Assert.True(result);
97+
controllerMock.Verify(c => c.Get(resourceId));
10298
}
10399
}
104100
}

0 commit comments

Comments
 (0)