LandlineAttributeTests.cs 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. using Masuit.Tools.Core.Validator;
  2. using Xunit;
  3. namespace Masuit.Tools.Abstractions.Test.Validator;
  4. public class LandlineAttributeTests
  5. {
  6. [Theory]
  7. [InlineData(null, true, true, null)]
  8. [InlineData("", true, true, null)]
  9. [InlineData("010-12345678", false, true, null)]
  10. [InlineData("010-12345678", true, true, null)]
  11. [InlineData("invalid-landline", false, false, "固定电话格式不正确,请输入有效的大陆11/12位固定电话!")]
  12. [InlineData(null, false, false, "固定电话不能为空")]
  13. public void IsValid_ShouldValidateLandline(string landline, bool allowEmpty, bool expected, string expectedErrorMessage)
  14. {
  15. // Arrange
  16. var attribute = new LandlineAttribute
  17. {
  18. AllowEmpty = allowEmpty
  19. };
  20. // Act
  21. var result = attribute.IsValid(landline);
  22. // Assert
  23. Assert.Equal(expected, result);
  24. Assert.Equal(expectedErrorMessage, attribute.ErrorMessage);
  25. }
  26. [Fact]
  27. public void IsValid_ShouldReturnFalse_WhenLandlineIsInvalid()
  28. {
  29. // Arrange
  30. var attribute = new LandlineAttribute();
  31. var landline = "123456";
  32. // Act
  33. var result = attribute.IsValid(landline);
  34. // Assert
  35. Assert.False(result);
  36. Assert.Equal("固定电话格式不正确,请输入有效的大陆11/12位固定电话!", attribute.ErrorMessage);
  37. }
  38. [Fact]
  39. public void IsValid_ShouldReturnTrue_WhenLandlineIsValid()
  40. {
  41. // Arrange
  42. var attribute = new LandlineAttribute();
  43. var landline = "010-12345678";
  44. // Act
  45. var result = attribute.IsValid(landline);
  46. // Assert
  47. Assert.True(result);
  48. }
  49. [Fact]
  50. public void IsValid_ShouldReturnTrue_WhenLandlineIsNullAndAllowEmptyIsTrue()
  51. {
  52. // Arrange
  53. var attribute = new LandlineAttribute
  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_WhenLandlineIsNullAndAllowEmptyIsFalse()
  64. {
  65. // Arrange
  66. var attribute = new LandlineAttribute
  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. }