Revert "Fixing coverage"

This reverts commit e5a3e6fdcf.
This commit is contained in:
2025-03-23 20:19:31 +01:00
parent e5a3e6fdcf
commit 8b5b3a198f
4 changed files with 78 additions and 12 deletions

View File

@@ -426,6 +426,61 @@ public class UserControllerTests
} }
} }
[TestMethod]
public async Task CreateUserAsync_NotCreated()
{
if (_userController == null)
{
Assert.Fail($"_userController is null");
}
if (_roleServiceMock == null)
{
Assert.Fail($"_roleServiceMock is null");
}
DatabaseSqlServer.User user = ModelsInit.CreateUser();
DatabaseSqlServer.Role role = ModelsInit.CreateRole();
DatabaseSqlServer.User? expectedUser = null;
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<string>(), It.IsAny<string>())).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)
{
Assert.IsTrue(response.StatusCode == StatusCodes.Status400BadRequest);
var result = (BaseResponse<object>)response.Value;
if (result != null)
{
Assert.IsTrue(result.Status == StatusCodes.Status400BadRequest);
Assert.IsTrue(result.Message == "Not created");
}
else
{
Assert.Fail($"Result value is null");
}
}
else
{
Assert.Fail($"Response value is null");
}
}
[TestMethod] [TestMethod]
public async Task CreateUserAsync_ModelInvalid() public async Task CreateUserAsync_ModelInvalid()
{ {

View File

@@ -105,35 +105,39 @@ public class UserService_Tests
var user = await userService.CreateUserAsync(data, role); var user = await userService.CreateUserAsync(data, role);
Assert.IsInstanceOfType(user, typeof(User)); Assert.IsInstanceOfType(user, typeof(User));
Assert.IsNotNull(user);
Assert.IsTrue(expectedUser.FirstName == user.FirstName); Assert.IsTrue(expectedUser.FirstName == user.FirstName);
Assert.IsTrue(expectedUser.LastName == user.LastName); Assert.IsTrue(expectedUser.LastName == user.LastName);
Assert.IsTrue(expectedUser.Email == user.Email); Assert.IsTrue(expectedUser.Email == user.Email);
Assert.IsTrue(expectedUser.Role?.Name == user.Role?.Name); Assert.IsTrue(expectedUser.Role?.Name == user.Role?.Name);
User realUser = user!;
Role realRole = user!.Role!;
// CheckIfEmailIsValid_CurrentUser // CheckIfEmailIsValid_CurrentUser
var valid = await userService.CheckIfEmailIsValid(user.Email, user.Guid); var valid = await userService.CheckIfEmailIsValid(realUser.Email, realUser.Guid);
Assert.IsTrue(valid); Assert.IsTrue(valid);
// CheckIfEmailIsValid_EmailAlreadyExists // CheckIfEmailIsValid_EmailAlreadyExists
valid = await userService.CheckIfEmailIsValid(user.Email); valid = await userService.CheckIfEmailIsValid(realUser.Email);
Assert.IsFalse(valid); Assert.IsFalse(valid);
//GetUserByIdAsync //GetUserByIdAsync
var getUserById = await userService.GetUserByIdAsync(user.Id); var getUserById = await userService.GetUserByIdAsync(realUser.Id);
Assert.IsNotNull(getUserById); Assert.IsNotNull(getUserById);
Assert.IsTrue(getUserById.Id == user?.Id); Assert.IsTrue(getUserById.Id == realUser?.Id);
//GetUserByGuidAsync //GetUserByGuidAsync
var getUserByGuid = await userService.GetUserByGuidAsync(user.Guid); var getUserByGuid = await userService.GetUserByGuidAsync(realUser.Guid);
Assert.IsNotNull(getUserByGuid); Assert.IsNotNull(getUserByGuid);
Assert.IsTrue(getUserByGuid.Guid == user?.Guid); Assert.IsTrue(getUserByGuid.Guid == realUser?.Guid);
//DeleteUserAsync //DeleteUserAsync
var deleted = await userService.DeleteUserAsync(user); var deleted = await userService.DeleteUserAsync(realUser);
Assert.IsTrue(deleted); Assert.IsTrue(deleted);
//DeleteRoleAsync //DeleteRoleAsync
deleted = await roleService.DeleteRoleAsync(user.Role!); deleted = await roleService.DeleteRoleAsync(realRole);
Assert.IsTrue(deleted); Assert.IsTrue(deleted);
} }
catch (Exception ex) catch (Exception ex)

View File

@@ -101,6 +101,11 @@ namespace BasicDotnetTemplate.MainProject.Controllers
var user = await this._userService.CreateUserAsync(request.Data, role); var user = await this._userService.CreateUserAsync(request.Data, role);
if (user == null || String.IsNullOrEmpty(user.Guid))
{
return BadRequest("Not created");
}
var userDto = _mapper?.Map<UserDto>(user); var userDto = _mapper?.Map<UserDto>(user);
return Success(String.Empty, userDto); return Success(String.Empty, userDto);

View File

@@ -13,7 +13,7 @@ public interface IUserService
Task<User?> GetUserByGuidAsync(string guid); Task<User?> GetUserByGuidAsync(string guid);
Task<User?> GetUserByUsernameAndPassword(string email, string password); Task<User?> GetUserByUsernameAndPassword(string email, string password);
Task<bool> CheckIfEmailIsValid(string email, string? guid = ""); Task<bool> CheckIfEmailIsValid(string email, string? guid = "");
Task<User> CreateUserAsync(CreateUserRequestData data, Role role); Task<User?> CreateUserAsync(CreateUserRequestData data, Role role);
Task<bool?> DeleteUserAsync(User user); Task<bool?> DeleteUserAsync(User user);
} }
@@ -102,15 +102,17 @@ public class UserService : BaseService, IUserService
return valid; return valid;
} }
public async Task<User> CreateUserAsync(CreateUserRequestData data, Role role) public async Task<User?> CreateUserAsync(CreateUserRequestData data, Role role)
{ {
User user = this.CreateUserData(data, role); User? user = null;
using (var transaction = _sqlServerContext.Database.BeginTransactionAsync()) using (var transaction = _sqlServerContext.Database.BeginTransactionAsync())
{ {
await _sqlServerContext.Users.AddAsync(user); var tempUser = this.CreateUserData(data, role);
await _sqlServerContext.Users.AddAsync(tempUser);
await _sqlServerContext.SaveChangesAsync(); await _sqlServerContext.SaveChangesAsync();
await (await transaction).CommitAsync(); await (await transaction).CommitAsync();
user = tempUser;
} }
return user; return user;