From e7b3acb91ef7b932d24691952f11a0831ca94f1b Mon Sep 17 00:00:00 2001 From: csimonapastore Date: Mon, 17 Mar 2025 20:30:11 +0100 Subject: [PATCH] Fixing tests for UserController --- .../Controllers/UserController_Tests.cs | 54 ++++++++++++++++++- MainProject.Tests/TestsUtils/ModelsInit.cs | 2 +- MainProject/Controllers/UserController.cs | 8 +-- MainProject/Services/UserService.cs | 1 - 4 files changed, 57 insertions(+), 8 deletions(-) diff --git a/MainProject.Tests/Controllers/UserController_Tests.cs b/MainProject.Tests/Controllers/UserController_Tests.cs index be67d0b..4355f94 100644 --- a/MainProject.Tests/Controllers/UserController_Tests.cs +++ b/MainProject.Tests/Controllers/UserController_Tests.cs @@ -231,6 +231,7 @@ public class UserControllerTests } }; + _userServiceMock.Setup(s => s.CheckIfEmailIsValid(It.IsAny(), It.IsAny())).ReturnsAsync(true); _roleServiceMock.Setup(s => s.GetRoleForUser(null)).ReturnsAsync(role); _userServiceMock.Setup(s => s.CreateUserAsync(request.Data, role)).ReturnsAsync(user); @@ -256,6 +257,47 @@ public class UserControllerTests } } + [TestMethod] + public async Task CreateUserAsync_InvalidEmail() + { + DatabaseSqlServer.User user = ModelsInit.CreateUser(); + + CreateUserRequest request = new CreateUserRequest() + { + Data = new CreateUserRequestData() + { + FirstName = user.FirstName, + LastName = user.LastName, + Email = user.Email, + Password = user.Password + } + }; + + _userServiceMock.Setup(s => s.CheckIfEmailIsValid(It.IsAny(), It.IsAny())).ReturnsAsync(false); + + ObjectResult response = (ObjectResult)(await _userController.CreateUserAsync(request)); + + if (response != null && response.Value != null) + { + Assert.IsTrue(response.StatusCode == StatusCodes.Status400BadRequest); + + var result = (BaseResponse)response.Value; + if (result != null) + { + Assert.IsTrue(result.Status == StatusCodes.Status400BadRequest); + Assert.IsTrue(result.Message == "Invalid email"); + } + else + { + Assert.Fail($"Result value is null"); + } + } + else + { + Assert.Fail($"Response value is null"); + } + } + [TestMethod] public async Task CreateUserAsync_RoleNull() { @@ -272,6 +314,8 @@ public class UserControllerTests } }; + _userServiceMock.Setup(s => s.CheckIfEmailIsValid(It.IsAny(), It.IsAny())).ReturnsAsync(true); + _userServiceMock.Setup(s => s.CreateUserAsync( It.IsAny(), It.IsAny() @@ -310,6 +354,8 @@ public class UserControllerTests Data = null }; + _userServiceMock.Setup(s => s.CheckIfEmailIsValid(It.IsAny(), It.IsAny())).ReturnsAsync(true); + _userServiceMock.Setup(s => s.CreateUserAsync( It.IsAny(), It.IsAny() @@ -356,13 +402,14 @@ public class UserControllerTests } }; + _userServiceMock.Setup(s => s.CheckIfEmailIsValid(It.IsAny(), It.IsAny())).ReturnsAsync(true); + _roleServiceMock.Setup(s => s.GetRoleForUser(null)).ReturnsAsync(role); _userServiceMock.Setup(s => s.CreateUserAsync(request.Data, role)).ReturnsAsync(expectedUser); ObjectResult response = (ObjectResult)(await _userController.CreateUserAsync(request)); if (response != null && response.Value != null) { - Console.WriteLine(JsonConvert.SerializeObject(response)); Assert.IsTrue(response.StatusCode == StatusCodes.Status400BadRequest); var result = (BaseResponse)response.Value; @@ -398,6 +445,8 @@ public class UserControllerTests } }; + _userServiceMock.Setup(s => s.CheckIfEmailIsValid(It.IsAny(), It.IsAny())).ReturnsAsync(true); + _userServiceMock.Setup(s => s.CreateUserAsync( It.IsAny(), It.IsAny() @@ -445,6 +494,8 @@ public class UserControllerTests } }; + _userServiceMock.Setup(s => s.CheckIfEmailIsValid(It.IsAny(), It.IsAny())).ReturnsAsync(true); + _roleServiceMock.Setup(s => s.GetRoleForUser(null)).ReturnsAsync(role); _userServiceMock.Setup(s => s.CreateUserAsync(request.Data, role)).ReturnsAsync(user); @@ -454,7 +505,6 @@ public class UserControllerTests )).ThrowsAsync(new Exception("Unexpected error")); ObjectResult response = (ObjectResult)(await _userController.CreateUserAsync(request)); - Console.WriteLine(JsonConvert.SerializeObject(response)); Assert.IsInstanceOfType(response, typeof(ObjectResult)); if (response != null && response.Value != null) diff --git a/MainProject.Tests/TestsUtils/ModelsInit.cs b/MainProject.Tests/TestsUtils/ModelsInit.cs index 928c237..29541ff 100644 --- a/MainProject.Tests/TestsUtils/ModelsInit.cs +++ b/MainProject.Tests/TestsUtils/ModelsInit.cs @@ -12,7 +12,7 @@ public static class ModelsInit Guid = Guid.NewGuid().ToString(), FirstName = "FirstName", LastName = "LastName", - Email = "Email", + Email = "test-new@email.it", PasswordHash = "PasswordHash", PasswordSalt = "PasswordSalt", Password = "Password", diff --git a/MainProject/Controllers/UserController.cs b/MainProject/Controllers/UserController.cs index bceaf7a..23ab705 100644 --- a/MainProject/Controllers/UserController.cs +++ b/MainProject/Controllers/UserController.cs @@ -92,10 +92,6 @@ namespace BasicDotnetTemplate.MainProject.Controllers } if (await this._userService.CheckIfEmailIsValid(request.Data.Email)) - { - return BadRequest("Invalid email"); - } - else { var role = await this._roleService.GetRoleForUser(request.Data.RoleGuid); if (role == null) @@ -114,6 +110,10 @@ namespace BasicDotnetTemplate.MainProject.Controllers return Success(String.Empty, userDto); } + else + { + return BadRequest("Invalid email"); + } } catch (Exception exception) diff --git a/MainProject/Services/UserService.cs b/MainProject/Services/UserService.cs index ff4efba..3a27c66 100644 --- a/MainProject/Services/UserService.cs +++ b/MainProject/Services/UserService.cs @@ -98,7 +98,6 @@ public class UserService : BaseService, IUserService { valid = true; } - return valid; }