Files
Musify/backend/Tests/Musify.Api.Tests/Validators/CreateUserRequestValidatorTests.cs
T

52 lines
1.3 KiB
C#

using Musify.Api.DataTransferObjects.Users;
using Musify.Api.Validators.Users;
using Xunit;
namespace Musify.Api.Tests.Validators;
public sealed class CreateUserRequestValidatorTests
{
private readonly CreateUserRequestValidator validator = new();
[Fact]
public void Validate_ValidRequest_Passes()
{
var result = validator.Validate(new CreateUserRequest(1, "Jane Doe", "Jane", "Doe"));
Assert.True(result.IsValid);
}
[Fact]
public void Validate_ZeroId_Fails()
{
var result = validator.Validate(new CreateUserRequest(0, "Jane Doe", null, null));
Assert.False(result.IsValid);
Assert.Contains(result.Errors, e => e.PropertyName == nameof(CreateUserRequest.Id));
}
[Fact]
public void Validate_BlankName_Fails()
{
var result = validator.Validate(new CreateUserRequest(1, "", null, null));
Assert.False(result.IsValid);
}
[Fact]
public void Validate_NameOverMaxLength_Fails()
{
var result = validator.Validate(new CreateUserRequest(1, new string('a', 49), null, null));
Assert.False(result.IsValid);
}
[Fact]
public void Validate_OptionalNamesOmitted_Passes()
{
var result = validator.Validate(new CreateUserRequest(1, "Jane Doe", null, null));
Assert.True(result.IsValid);
}
}