using AiDevProject.Core.Validation; using Xunit; using FluentAssertions; namespace AiDevProject.Tests.Unit; /// /// Tests for validators. /// public class ValidationTests { private readonly CreateUserValidator _validator = new(); [Fact] public void ValidUser_Passes() { var request = new CreateUserRequest( Email: "test@example.com", Password: "SecurePass123" ); var result = _validator.Validate(request); result.IsValid.Should().BeTrue(); } [Fact] public void InvalidEmail_Fails() { var request = new CreateUserRequest( Email: "not-an-email", Password: "SecurePass123" ); var result = _validator.Validate(request); result.IsValid.Should().BeFalse(); result.Errors.Should().Contain(e => e.PropertyName == "Email"); } [Fact] public void ShortPassword_Fails() { var request = new CreateUserRequest( Email: "test@example.com", Password: "short" ); var result = _validator.Validate(request); result.IsValid.Should().BeFalse(); result.Errors.Should().Contain(e => e.PropertyName == "Password"); } }