@@ -2,11 +2,10 @@ using BasicDotnetTemplate.MainProject.Services;
|
|||||||
using BasicDotnetTemplate.MainProject.Models.Api.Data.User;
|
using BasicDotnetTemplate.MainProject.Models.Api.Data.User;
|
||||||
using BasicDotnetTemplate.MainProject.Models.Database.SqlServer;
|
using BasicDotnetTemplate.MainProject.Models.Database.SqlServer;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
namespace BasicDotnetTemplate.MainProject.Tests;
|
namespace BasicDotnetTemplate.MainProject.Tests;
|
||||||
|
|
||||||
[TestClass]
|
[TestClass]
|
||||||
|
[TestCategory("Integration")]
|
||||||
public class UserService_Tests
|
public class UserService_Tests
|
||||||
{
|
{
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
@@ -31,122 +30,33 @@ public class UserService_Tests
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
public async Task GetUserByUsernameAndPassword_Null()
|
public async Task CreateUser_And_GetById_ReturnsCorrectUserAsync()
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
var userService = TestUtils.CreateUserService();
|
|
||||||
var testString = "test";
|
|
||||||
if (userService != null)
|
|
||||||
{
|
|
||||||
var user = await userService.GetUserByUsernameAndPassword(testString, testString);
|
|
||||||
Assert.IsTrue(user == null);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Assert.Fail($"UserService is null");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
Console.WriteLine(ex.InnerException);
|
|
||||||
Assert.Fail($"An exception was thrown: {ex}");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[TestMethod]
|
|
||||||
public async Task CheckIfEmailIsValid_EmailNotExists()
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
{
|
||||||
|
// Arrange
|
||||||
var userService = TestUtils.CreateUserService();
|
var userService = TestUtils.CreateUserService();
|
||||||
var user = ModelsInit.CreateUser();
|
var user = ModelsInit.CreateUser();
|
||||||
if (userService != null)
|
var role = ModelsInit.CreateRole();
|
||||||
{
|
|
||||||
var valid = await userService.CheckIfEmailIsValid(user.Email);
|
|
||||||
Assert.IsTrue(valid);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Assert.Fail($"UserService is null");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
Console.WriteLine(ex.InnerException);
|
|
||||||
Assert.Fail($"An exception was thrown: {ex}");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[TestMethod]
|
|
||||||
public async Task CreateUserAsync_Success()
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
var userService = TestUtils.CreateUserService();
|
|
||||||
var roleService = TestUtils.CreateRoleService();
|
|
||||||
var expectedUser = ModelsInit.CreateUser();
|
|
||||||
|
|
||||||
CreateUserRequestData data = new CreateUserRequestData()
|
CreateUserRequestData data = new CreateUserRequestData()
|
||||||
{
|
{
|
||||||
FirstName = expectedUser.FirstName ?? String.Empty,
|
FirstName = user.FirstName,
|
||||||
LastName = expectedUser.LastName ?? String.Empty,
|
LastName = user.LastName,
|
||||||
Email = expectedUser.Email ?? String.Empty
|
Email = user.Email,
|
||||||
|
Password = user.Password
|
||||||
};
|
};
|
||||||
|
|
||||||
Role role = new()
|
// Act
|
||||||
{
|
var createdUser = await userService.CreateUserAsync(data, role);
|
||||||
Name = expectedUser.Role?.Name ?? String.Empty,
|
Assert.IsNotNull(createdUser);
|
||||||
IsNotEditable = expectedUser.Role?.IsNotEditable ?? false,
|
|
||||||
Guid = expectedUser.Role?.Guid ?? String.Empty
|
|
||||||
};
|
|
||||||
|
|
||||||
var user = await userService.CreateUserAsync(data, role);
|
// Act
|
||||||
Assert.IsInstanceOfType(user, typeof(User));
|
var retrievedUser = await userService.GetUserByIdAsync(createdUser.Id);
|
||||||
Assert.IsNotNull(user);
|
Assert.IsNotNull(retrievedUser);
|
||||||
Assert.IsTrue(expectedUser.FirstName == user.FirstName);
|
|
||||||
Assert.IsTrue(expectedUser.LastName == user.LastName);
|
|
||||||
Assert.IsTrue(expectedUser.Email == user.Email);
|
|
||||||
Assert.IsTrue(expectedUser.Role?.Name == user.Role?.Name);
|
|
||||||
|
|
||||||
User realUser = user!;
|
// Assert
|
||||||
Role realRole = user!.Role!;
|
Assert.AreEqual(createdUser.Id, retrievedUser.Id);
|
||||||
|
Assert.AreEqual(createdUser.Guid, retrievedUser.Guid);
|
||||||
// CheckIfEmailIsValid_CurrentUser
|
|
||||||
var valid = await userService.CheckIfEmailIsValid(realUser.Email, realUser.Guid);
|
|
||||||
Assert.IsTrue(valid);
|
|
||||||
|
|
||||||
// CheckIfEmailIsValid_EmailAlreadyExists
|
|
||||||
valid = await userService.CheckIfEmailIsValid(realUser.Email);
|
|
||||||
Assert.IsFalse(valid);
|
|
||||||
|
|
||||||
//GetUserByIdAsync
|
|
||||||
var getUserById = await userService.GetUserByIdAsync(realUser.Id);
|
|
||||||
Assert.IsNotNull(getUserById);
|
|
||||||
Assert.IsTrue(getUserById.Id == realUser?.Id);
|
|
||||||
|
|
||||||
//GetUserByGuidAsync
|
|
||||||
var getUserByGuid = await userService.GetUserByGuidAsync(realUser.Guid);
|
|
||||||
Assert.IsNotNull(getUserByGuid);
|
|
||||||
Assert.IsTrue(getUserByGuid.Guid == realUser?.Guid);
|
|
||||||
|
|
||||||
//DeleteUserAsync
|
|
||||||
var deleted = await userService.DeleteUserAsync(realUser);
|
|
||||||
Assert.IsTrue(deleted);
|
|
||||||
|
|
||||||
//DeleteRoleAsync
|
|
||||||
deleted = await roleService.DeleteRoleAsync(realRole);
|
|
||||||
Assert.IsTrue(deleted);
|
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
Console.WriteLine(ex.InnerException);
|
|
||||||
Assert.Fail($"An exception was thrown: {ex}");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user