59 lines
2.3 KiB
C#
59 lines
2.3 KiB
C#
using FluentAssertions;
|
|
using Nop.Core.Domain.Customers;
|
|
using Nop.Web.Framework.Validators;
|
|
using NUnit.Framework;
|
|
|
|
namespace Nop.Tests.Nop.Web.Tests.Public.Validators;
|
|
|
|
[TestFixture]
|
|
public class PhoneNumberValidatorTests
|
|
{
|
|
private TestValidator _validator;
|
|
private CustomerSettings _customerSettings;
|
|
|
|
[OneTimeSetUp]
|
|
public void Setup()
|
|
{
|
|
_customerSettings = new CustomerSettings
|
|
{
|
|
PhoneNumberValidationRule = "^[0-9]{1,14}?$",
|
|
PhoneNumberValidationEnabled = true,
|
|
PhoneNumberValidationUseRegex = false
|
|
};
|
|
|
|
_validator = new TestValidator { v => v.RuleFor(x => x.PhoneNumber).IsPhoneNumber(_customerSettings) };
|
|
}
|
|
|
|
[Test]
|
|
public async Task IsValidTests()
|
|
{
|
|
//optional value is not valid
|
|
_customerSettings.PhoneRequired = true;
|
|
var result = await _validator.ValidateAsync(new Person { PhoneNumber = null });
|
|
result.IsValid.Should().BeFalse();
|
|
result = await _validator.ValidateAsync(new Person { PhoneNumber = string.Empty });
|
|
result.IsValid.Should().BeFalse();
|
|
|
|
//validation without regex
|
|
result = await _validator.ValidateAsync(new Person { PhoneNumber = "test_phone_number" });
|
|
result.IsValid.Should().BeFalse();
|
|
result = await _validator.ValidateAsync(new Person { PhoneNumber = string.Empty });
|
|
result.IsValid.Should().BeFalse();
|
|
result = await _validator.ValidateAsync(new Person { PhoneNumber = "123" });
|
|
result.IsValid.Should().BeFalse();
|
|
result = await _validator.ValidateAsync(new Person { PhoneNumber = "[0-9]{1,14}^" });
|
|
result.IsValid.Should().BeTrue();
|
|
|
|
//validation with regex
|
|
_customerSettings.PhoneNumberValidationUseRegex = true;
|
|
result = await _validator.ValidateAsync(new Person { PhoneNumber = "test_phone_number" });
|
|
result.IsValid.Should().BeFalse();
|
|
result = await _validator.ValidateAsync(new Person { PhoneNumber = "123456789" });
|
|
result.IsValid.Should().BeTrue();
|
|
_customerSettings.PhoneRequired = false;
|
|
result = await _validator.ValidateAsync(new Person { PhoneNumber = string.Empty });
|
|
result.IsValid.Should().BeTrue();
|
|
result = await _validator.ValidateAsync(new Person { PhoneNumber = "+123456789" });
|
|
result.IsValid.Should().BeFalse();
|
|
}
|
|
} |