test(udt-001): backend unit and integration tests (30 tests)
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
using FluentValidation.TestHelper;
|
||||
using SIGCM2.Application.Auth.Login;
|
||||
|
||||
namespace SIGCM2.Application.Tests.Auth.Login;
|
||||
|
||||
public class LoginCommandValidatorTests
|
||||
{
|
||||
private readonly LoginCommandValidator _validator = new();
|
||||
|
||||
// Happy path: valid command passes validation
|
||||
[Fact]
|
||||
public void Validate_ValidCommand_ShouldHaveNoErrors()
|
||||
{
|
||||
var command = new LoginCommand("admin", "@Diego550@");
|
||||
var result = _validator.TestValidate(command);
|
||||
result.ShouldNotHaveAnyValidationErrors();
|
||||
}
|
||||
|
||||
// Scenario: empty username → validation error referencing Username
|
||||
[Fact]
|
||||
public void Validate_EmptyUsername_ShouldHaveErrorForUsername()
|
||||
{
|
||||
var command = new LoginCommand("", "@Diego550@");
|
||||
var result = _validator.TestValidate(command);
|
||||
result.ShouldHaveValidationErrorFor(c => c.Username);
|
||||
}
|
||||
|
||||
// Triangulation: whitespace-only username
|
||||
[Fact]
|
||||
public void Validate_WhitespaceUsername_ShouldHaveErrorForUsername()
|
||||
{
|
||||
var command = new LoginCommand(" ", "@Diego550@");
|
||||
var result = _validator.TestValidate(command);
|
||||
result.ShouldHaveValidationErrorFor(c => c.Username);
|
||||
}
|
||||
|
||||
// Scenario: missing password → validation error referencing Password
|
||||
[Fact]
|
||||
public void Validate_EmptyPassword_ShouldHaveErrorForPassword()
|
||||
{
|
||||
var command = new LoginCommand("admin", "");
|
||||
var result = _validator.TestValidate(command);
|
||||
result.ShouldHaveValidationErrorFor(c => c.Password);
|
||||
}
|
||||
|
||||
// Triangulation: null-equivalent (empty string is how records serialize missing fields)
|
||||
[Fact]
|
||||
public void Validate_BothEmpty_ShouldHaveErrorsForBothFields()
|
||||
{
|
||||
var command = new LoginCommand("", "");
|
||||
var result = _validator.TestValidate(command);
|
||||
result.ShouldHaveValidationErrorFor(c => c.Username);
|
||||
result.ShouldHaveValidationErrorFor(c => c.Password);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user