using Application.Models; using Application.Validators; namespace Application.UnitTest.Validators; public class UserUpdateRequestValidatorTests { private readonly UserUpdateRequestValidator _sut = new(); [Fact] public void Validate_ShouldPass_WhenAllFieldsAreValid() { var request = new UserUpdateRequest(1, "ValidUser", "test@example.com"); var result = _sut.Validate(request); Assert.True(result.IsValid); } [Theory] [InlineData(0, "ValidUser", "test@example.com", "Id")] [InlineData(1, "", "test@example.com", "Username")] [InlineData(1, "ValidUser", "", "Email")] [InlineData(1, "ValidUser", "invalid-email", "Email")] public void Validate_ShouldFail_WhenFieldIsInvalid(int id, string username, string email, string expectedProperty) { var request = new UserUpdateRequest(id, username, email); var result = _sut.Validate(request); Assert.False(result.IsValid); Assert.Contains(result.Errors, e => e.PropertyName == expectedProperty); } }