Try your search with a different keyword or use * as a wildcard.
using System.Globalization;
using FluentAssertions;
using Nop.Web.Framework.Validators;
using NUnit.Framework;
namespace Nop.Tests.Nop.Web.Tests.Public.Validators;
[TestFixture]
public class CreditCardValidatorTests
{
private TestValidator _validator;
[OneTimeSetUp]
public void Setup()
{
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
_validator = new TestValidator { v => v.RuleFor(x => x.CreditCard).IsCreditCard() };
}
[Test]
public async Task IsValidTests()
{
// Optional value is not valid
var result = await _validator.ValidateAsync(new Person { CreditCard = null });
result.IsValid.Should().BeFalse();
// Simplest valid value
result = await _validator.ValidateAsync(new Person { CreditCard = "0000000000000000" });
result.IsValid.Should().BeTrue();
// Good checksum
result = await _validator.ValidateAsync(new Person { CreditCard = "1234567890123452" });
result.IsValid.Should().BeTrue();
// Good checksum, with dashes
result = await _validator.ValidateAsync(new Person { CreditCard = "1234-5678-9012-3452" });
result.IsValid.Should().BeTrue();
// Good checksum, with spaces
result = await _validator.ValidateAsync(new Person { CreditCard = "1234 5678 9012 3452" });
result.IsValid.Should().BeTrue();
// Bad checksum
result = await _validator.ValidateAsync(new Person { CreditCard = "0000000000000001" });
result.IsValid.Should().BeFalse();
result = await _validator.ValidateAsync(new Person { CreditCard = "0000000000000000" });
result.IsValid.Should().BeTrue();
}
}