IsEmailAttributeTests.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. using Masuit.Tools.Core.Validator;
  2. using Xunit;
  3. namespace Masuit.Tools.Abstractions.Test.Validator;
  4. public class IsEmailAttributeTests
  5. {
  6. [Theory]
  7. [InlineData(null, true, true)]
  8. [InlineData("", true, true)]
  9. [InlineData("[email protected]", true, true)]
  10. [InlineData("invalid-email", false, false)]
  11. [InlineData("test@invalid-domain", false, false)]
  12. public void IsValid_ShouldValidateEmail(string email, bool allowEmpty, bool expected)
  13. {
  14. // Arrange
  15. var attribute = new IsEmailAttribute(validDns: false)
  16. {
  17. AllowEmpty = allowEmpty
  18. };
  19. // Act
  20. var result = attribute.IsValid(email);
  21. // Assert
  22. Assert.Equal(expected, result);
  23. }
  24. [Fact]
  25. public void IsValid_ShouldReturnFalse_WhenEmailIsTooShort()
  26. {
  27. // Arrange
  28. var attribute = new IsEmailAttribute();
  29. var email = "[email protected]";
  30. // Act
  31. var result = attribute.IsValid(email);
  32. // Assert
  33. Assert.False(result);
  34. Assert.Equal("您输入的邮箱格式不正确!", attribute.ErrorMessage);
  35. }
  36. [Fact]
  37. public void IsValid_ShouldReturnFalse_WhenEmailIsTooLong()
  38. {
  39. // Arrange
  40. var attribute = new IsEmailAttribute();
  41. var email = new string('a', 257) + "@example.com";
  42. // Act
  43. var result = attribute.IsValid(email);
  44. // Assert
  45. Assert.False(result);
  46. Assert.Equal("您输入的邮箱无效,请使用真实有效的邮箱地址!", attribute.ErrorMessage);
  47. }
  48. }