Skip to content

Commit e8ef38e

Browse files
author
maxence
committed
fix faille
1 parent 7ed3a5e commit e8ef38e

24 files changed

Lines changed: 610 additions & 54 deletions

‎TableMasterApi.Tests/Controllers/AuthControllerTests.cs‎

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -344,5 +344,23 @@ public async Task Refresh_ShouldReturnUnauthorized_WhenUserNoLongerExists()
344344
userDal.Verify(x => x.DeleteRefreshToken(It.IsAny<string>()), Times.Never);
345345
userDal.Verify(x => x.SaveRefreshToken(It.IsAny<long>(), It.IsAny<string>(), It.IsAny<DateTime>()), Times.Never);
346346
}
347+
348+
[Fact]
349+
public async Task Logout_ShouldRevokeHashedRefreshToken()
350+
{
351+
var userDal = new Mock<IUserDAL>();
352+
var authDal = new Mock<IAuthDAL>();
353+
var controller = new AuthController(userDal.Object, authDal.Object, _jwtService);
354+
const string refreshToken = "refresh-token-to-revoke";
355+
var expectedHash = _jwtService.HashToken(refreshToken);
356+
357+
userDal.Setup(x => x.DeleteRefreshToken(expectedHash)).ReturnsAsync(true);
358+
359+
var result = await controller.Logout(new LogoutRequest { RefreshToken = refreshToken });
360+
361+
result.Should().BeOfType<NoContentResult>();
362+
userDal.Verify(x => x.DeleteRefreshToken(expectedHash), Times.Once);
363+
userDal.Verify(x => x.DeleteRefreshToken(refreshToken), Times.Never);
364+
}
347365
}
348366
}

‎TableMasterApi.Tests/Controllers/ClosedDayExceptionControllerTests.cs‎

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,13 @@ public async Task Post_ShouldReturnBadRequest_WhenInputIsNull()
4545
public async Task Post_ShouldReturnOk_WhenInputIsValid()
4646
{
4747
var dal = new Mock<IClosedDayExceptionDAL>();
48-
var controller = CreateController(dal);
48+
var restaurantDal = new Mock<IRestaurantDAL>();
49+
var controller = CreateController(dal, restaurantDal);
50+
ControllerTestHelper.SetBearerToken(controller, _jwtService, 42);
4951
var input = TestData.ClosedDayExceptionIn();
5052
var created = TestData.ClosedDayExceptionOut();
5153

54+
restaurantDal.Setup(x => x.GetRestaurantById(input.RestaurantId)).ReturnsAsync(TestData.RestaurantOut(userId: 42));
5255
dal.Setup(x => x.InsertAsync(input)).ReturnsAsync(created);
5356

5457
var result = await controller.Post(input);
@@ -57,6 +60,24 @@ public async Task Post_ShouldReturnOk_WhenInputIsValid()
5760
ok.Value.Should().BeEquivalentTo(created);
5861
}
5962

63+
[Fact]
64+
public async Task Post_ShouldReturnForbidden_WhenRestaurantBelongsToAnotherUser()
65+
{
66+
var dal = new Mock<IClosedDayExceptionDAL>();
67+
var restaurantDal = new Mock<IRestaurantDAL>();
68+
var controller = CreateController(dal, restaurantDal);
69+
ControllerTestHelper.SetBearerToken(controller, _jwtService, 42);
70+
var input = TestData.ClosedDayExceptionIn();
71+
72+
restaurantDal.Setup(x => x.GetRestaurantById(input.RestaurantId))
73+
.ReturnsAsync(TestData.RestaurantOut(userId: 99));
74+
75+
var result = await controller.Post(input);
76+
77+
result.Result.Should().BeOfType<ForbidResult>();
78+
dal.Verify(x => x.InsertAsync(It.IsAny<ClosedDayExceptionIn>()), Times.Never);
79+
}
80+
6081
[Fact]
6182
public async Task Put_ShouldReturnUnauthorized_WhenRestaurantBelongsToAnotherUser()
6283
{

‎TableMasterApi.Tests/Controllers/DailyActivityControllerTests.cs‎

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,24 @@ public async Task Post_ShouldReturnBadRequest_WhenInputIsNull()
4141
dal.Verify(x => x.InsertAsync(It.IsAny<DailyActivityIn>()), Times.Never);
4242
}
4343

44+
[Fact]
45+
public async Task Post_ShouldReturnForbidden_WhenRestaurantBelongsToAnotherUser()
46+
{
47+
var dal = new Mock<IDailyActivityDAL>();
48+
var restaurantDal = new Mock<IRestaurantDAL>();
49+
var controller = CreateController(dal, restaurantDal);
50+
ControllerTestHelper.SetBearerToken(controller, _jwtService, 42);
51+
var input = TestData.DailyActivityIn();
52+
53+
restaurantDal.Setup(x => x.GetRestaurantById(input.RestaurantId))
54+
.ReturnsAsync(TestData.RestaurantOut(userId: 99));
55+
56+
var result = await controller.Post(input);
57+
58+
result.Should().BeOfType<ForbidResult>();
59+
dal.Verify(x => x.InsertAsync(It.IsAny<DailyActivityIn>()), Times.Never);
60+
}
61+
4462
[Fact]
4563
public async Task Put_ShouldReturnUnauthorized_WhenRestaurantBelongsToAnotherUser()
4664
{

‎TableMasterApi.Tests/Controllers/MenuControllerTests.cs‎

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,13 @@ public async Task Post_ShouldReturnBadRequest_WhenInputIsNull()
4545
public async Task Post_ShouldReturnOk_WhenInputIsValid()
4646
{
4747
var menuDal = new Mock<IMenuDAL>();
48-
var controller = CreateController(menuDal);
48+
var restaurantDal = new Mock<IRestaurantDAL>();
49+
var controller = CreateController(menuDal, restaurantDal);
50+
ControllerTestHelper.SetBearerToken(controller, _jwtService, 42);
4951
var input = TestData.MenuIn();
5052
var created = TestData.MenuOut();
5153

54+
restaurantDal.Setup(x => x.GetRestaurantById(input.RestaurantId)).ReturnsAsync(TestData.RestaurantOut(userId: 42));
5255
menuDal.Setup(x => x.InsertAsync(input)).ReturnsAsync(created);
5356

5457
var result = await controller.Post(input);
@@ -57,6 +60,24 @@ public async Task Post_ShouldReturnOk_WhenInputIsValid()
5760
ok.Value.Should().BeEquivalentTo(created);
5861
}
5962

63+
[Fact]
64+
public async Task Post_ShouldReturnForbidden_WhenRestaurantBelongsToAnotherUser()
65+
{
66+
var menuDal = new Mock<IMenuDAL>();
67+
var restaurantDal = new Mock<IRestaurantDAL>();
68+
var controller = CreateController(menuDal, restaurantDal);
69+
ControllerTestHelper.SetBearerToken(controller, _jwtService, 42);
70+
var input = TestData.MenuIn();
71+
72+
restaurantDal.Setup(x => x.GetRestaurantById(input.RestaurantId))
73+
.ReturnsAsync(TestData.RestaurantOut(userId: 99));
74+
75+
var result = await controller.Post(input);
76+
77+
result.Should().BeOfType<ForbidResult>();
78+
menuDal.Verify(x => x.InsertAsync(It.IsAny<MenuIn>()), Times.Never);
79+
}
80+
6081
[Fact]
6182
public async Task Delete_ShouldReturnUnauthorized_WhenRestaurantBelongsToAnotherUser()
6283
{

0 commit comments

Comments
 (0)