Files
2024-12-27 13:49:16 +08:00

92 lines
2.4 KiB
C#

using Masuit.Tools.Core.Validator;
using Xunit;
namespace Masuit.Tools.Abstractions.Test.Validator;
public class IsPhoneAttributeTests
{
[Theory]
[InlineData(null, true, true, null)]
[InlineData("", true, true, null)]
[InlineData("13800138000", false, true, null)]
[InlineData("13800138000", true, true, null)]
[InlineData("invalid-phone", false, false, "手机号码格式不正确,请输入有效的大陆11位手机号码!")]
[InlineData(null, false, false, "手机号码不能为空")]
public void IsValid_ShouldValidatePhoneNumber(string phoneNumber, bool allowEmpty, bool expected, string expectedErrorMessage)
{
// Arrange
var attribute = new IsPhoneAttribute
{
AllowEmpty = allowEmpty
};
// Act
var result = attribute.IsValid(phoneNumber);
// Assert
Assert.Equal(expected, result);
Assert.Equal(expectedErrorMessage, attribute.ErrorMessage);
}
[Fact]
public void IsValid_ShouldReturnFalse_WhenPhoneNumberIsInvalid()
{
// Arrange
var attribute = new IsPhoneAttribute();
var phoneNumber = "123456";
// Act
var result = attribute.IsValid(phoneNumber);
// Assert
Assert.False(result);
Assert.Equal("手机号码格式不正确,请输入有效的大陆11位手机号码!", attribute.ErrorMessage);
}
[Fact]
public void IsValid_ShouldReturnTrue_WhenPhoneNumberIsValid()
{
// Arrange
var attribute = new IsPhoneAttribute();
var phoneNumber = "13800138000";
// Act
var result = attribute.IsValid(phoneNumber);
// Assert
Assert.True(result);
}
[Fact]
public void IsValid_ShouldReturnTrue_WhenPhoneNumberIsNullAndAllowEmptyIsTrue()
{
// Arrange
var attribute = new IsPhoneAttribute
{
AllowEmpty = true
};
// Act
var result = attribute.IsValid(null);
// Assert
Assert.True(result);
}
[Fact]
public void IsValid_ShouldReturnFalse_WhenPhoneNumberIsNullAndAllowEmptyIsFalse()
{
// Arrange
var attribute = new IsPhoneAttribute
{
AllowEmpty = false
};
// Act
var result = attribute.IsValid(null);
// Assert
Assert.False(result);
Assert.Equal("手机号码不能为空", attribute.ErrorMessage);
}
}