IsPhoneAttributeTests.cs 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. using Masuit.Tools.Core.Validator;
  2. using Xunit;
  3. namespace Masuit.Tools.Abstractions.Test.Validator;
  4. public class IsPhoneAttributeTests
  5. {
  6. [Theory]
  7. [InlineData(null, true, true, null)]
  8. [InlineData("", true, true, null)]
  9. [InlineData("13800138000", false, true, null)]
  10. [InlineData("13800138000", true, true, null)]
  11. [InlineData("invalid-phone", false, false, "手机号码格式不正确,请输入有效的大陆11位手机号码!")]
  12. [InlineData(null, false, false, "手机号码不能为空")]
  13. public void IsValid_ShouldValidatePhoneNumber(string phoneNumber, bool allowEmpty, bool expected, string expectedErrorMessage)
  14. {
  15. // Arrange
  16. var attribute = new IsPhoneAttribute
  17. {
  18. AllowEmpty = allowEmpty
  19. };
  20. // Act
  21. var result = attribute.IsValid(phoneNumber);
  22. // Assert
  23. Assert.Equal(expected, result);
  24. Assert.Equal(expectedErrorMessage, attribute.ErrorMessage);
  25. }
  26. [Fact]
  27. public void IsValid_ShouldReturnFalse_WhenPhoneNumberIsInvalid()
  28. {
  29. // Arrange
  30. var attribute = new IsPhoneAttribute();
  31. var phoneNumber = "123456";
  32. // Act
  33. var result = attribute.IsValid(phoneNumber);
  34. // Assert
  35. Assert.False(result);
  36. Assert.Equal("手机号码格式不正确,请输入有效的大陆11位手机号码!", attribute.ErrorMessage);
  37. }
  38. [Fact]
  39. public void IsValid_ShouldReturnTrue_WhenPhoneNumberIsValid()
  40. {
  41. // Arrange
  42. var attribute = new IsPhoneAttribute();
  43. var phoneNumber = "13800138000";
  44. // Act
  45. var result = attribute.IsValid(phoneNumber);
  46. // Assert
  47. Assert.True(result);
  48. }
  49. [Fact]
  50. public void IsValid_ShouldReturnTrue_WhenPhoneNumberIsNullAndAllowEmptyIsTrue()
  51. {
  52. // Arrange
  53. var attribute = new IsPhoneAttribute
  54. {
  55. AllowEmpty = true
  56. };
  57. // Act
  58. var result = attribute.IsValid(null);
  59. // Assert
  60. Assert.True(result);
  61. }
  62. [Fact]
  63. public void IsValid_ShouldReturnFalse_WhenPhoneNumberIsNullAndAllowEmptyIsFalse()
  64. {
  65. // Arrange
  66. var attribute = new IsPhoneAttribute
  67. {
  68. AllowEmpty = false
  69. };
  70. // Act
  71. var result = attribute.IsValid(null);
  72. // Assert
  73. Assert.False(result);
  74. Assert.Equal("手机号码不能为空", attribute.ErrorMessage);
  75. }
  76. }