more testing

This commit is contained in:
2024-10-22 20:52:10 +11:00
parent 3a26c007d2
commit 1cd75cf481
13 changed files with 259 additions and 21 deletions

View File

@ -0,0 +1,46 @@
using FluentValidation.Results;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using UserManager.Application.Features.Users.Requests;
namespace UserManager.Application.UnitTests.Features.Users
{
[TestClass]
public class CreateUserRequestDtoValidationUnitTests
{
[TestMethod]
public void CreateUserRequestDtoValidator_WhenFirstNameIsEmpty_ShouldReturnValidationError()
{
// Arrange
CreateUserRequestDto request = new()
{
FirstName = string.Empty,
LastName = "Doe"
};
// Act
ValidationResult validationResult = new CreateUserRequestDtoValidator().Validate(request);
// Assert
Assert.IsFalse(validationResult.IsValid);
Assert.AreEqual("FirstName is required.", validationResult.Errors[0].ErrorMessage);
}
[TestMethod]
public void CreateUserRequestDtoValidator_WhenLastNameIsEmpty_ShouldReturnValidationError()
{
// Arrange
CreateUserRequestDto request = new()
{
FirstName = "John",
LastName = string.Empty
};
// Act
ValidationResult validationResult = new CreateUserRequestDtoValidator().Validate(request);
// Assert
Assert.IsFalse(validationResult.IsValid);
Assert.AreEqual("LastName is required.", validationResult.Errors[0].ErrorMessage);
}
}
}

View File

@ -0,0 +1,37 @@
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Moq;
using UserManager.Application.Features.Users.Requests;
using UserManager.Application.Interfaces;
using UserManager.Application.Features.Users.Services;
using UserManager.Application.Features.Users.Responses;
using UserManager.Domain.Entities;
namespace UserManager.Application.UnitTests.Features.Users
{
[TestClass]
public class UserServiceUnitTests
{
[TestMethod]
public async Task CreateUserAsync_ShouldCallAddAndSave_WhenCreateUserCalled()
{
// Arrange
Mock<IUnitOfWork> unitOfWork = new();
Mock<IUserRepository> userRepository = new();
unitOfWork.SetupGet(u => u.UserRepository).Returns(userRepository.Object);
var request = new CreateUserRequestDto()
{
FirstName = "John",
LastName = "Doe",
};
UserService userService = new(unitOfWork.Object);
// Act
CreateUserResponseDto responseDto = await userService.CreateUserAsync(request);
// Assert
unitOfWork.Verify(u => u.UserRepository.CreateAsync(It.IsAny<User>()), Times.Once);
unitOfWork.Verify(u => u.SaveChangesAsync(), Times.Once);
}
}
}