This is an automated email from the ASF dual-hosted git repository. sebb pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-validator.git
The following commit(s) were added to refs/heads/master by this push: new c9202ac VALIDATOR-403 DISCOVER 6011 17 digits c9202ac is described below commit c9202acfb7a47cc656a7d53f9277f222669d6356 Author: Sebb <s...@apache.org> AuthorDate: Tue Jul 28 12:51:52 2020 +0100 VALIDATOR-403 DISCOVER 6011 17 digits --- src/changes/changes.xml | 3 +++ .../org/apache/commons/validator/routines/CreditCardValidator.java | 2 +- .../org/apache/commons/validator/routines/CreditCardValidatorTest.java | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/changes/changes.xml b/src/changes/changes.xml index 9a4176b..4b413bb 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -99,6 +99,9 @@ Apache Commons Validator. For the current list of dependencies, please see http://commons.apache.org/validator/dependencies.html "> + <action issue="VALIDATOR-403" type="fix" dev="sebb" due-to="Tanya"> + Accept Discover cards of 17 digits long that start with 6011 + </action> <action issue="VALIDATOR-408" type="fix" dev="sebb" due-to="Raj Vaida"> DISCOVER Card Validation Patterns </action> diff --git a/src/main/java/org/apache/commons/validator/routines/CreditCardValidator.java b/src/main/java/org/apache/commons/validator/routines/CreditCardValidator.java index 801645d..94e8fe0 100644 --- a/src/main/java/org/apache/commons/validator/routines/CreditCardValidator.java +++ b/src/main/java/org/apache/commons/validator/routines/CreditCardValidator.java @@ -236,7 +236,7 @@ public class CreditCardValidator implements Serializable { * 6011xx (16) <br> * 644xxx - 65xxxx (16) <br> */ - private static final RegexValidator DISCOVER_REGEX = new RegexValidator(new String[] {"^(6011\\d{12})$", "^(64[4-9]\\d{13})$", "^(65\\d{14})$", "^(62[2-8]\\d{13})$"}); + private static final RegexValidator DISCOVER_REGEX = new RegexValidator(new String[] {"^(6011\\d{12,13})$", "^(64[4-9]\\d{13})$", "^(65\\d{14})$", "^(62[2-8]\\d{13})$"}); /** Discover Card Validator */ public static final CodeValidator DISCOVER_VALIDATOR = new CodeValidator(DISCOVER_REGEX, LUHN_VALIDATOR); diff --git a/src/test/java/org/apache/commons/validator/routines/CreditCardValidatorTest.java b/src/test/java/org/apache/commons/validator/routines/CreditCardValidatorTest.java index 7605389..a55d20a 100644 --- a/src/test/java/org/apache/commons/validator/routines/CreditCardValidatorTest.java +++ b/src/test/java/org/apache/commons/validator/routines/CreditCardValidatorTest.java @@ -55,6 +55,7 @@ public class CreditCardValidatorTest extends TestCase { VALID_DINERS, VALID_VPAY, VALID_VPAY2, + "60115564485789458", // VALIDATOR-403 }; private static final String [] ERROR_CARDS = { @@ -311,7 +312,6 @@ public class CreditCardValidatorTest extends TestCase { assertTrue("Length 16-644", regex.isValid("6444567890123456")); assertTrue("Length 16-648", regex.isValid("6484567890123456")); assertTrue("Length 16-65", regex.isValid("6534567890123456")); - assertFalse("Length 17-6011", regex.isValid("60115678901234567")); assertFalse("Length 17-65", regex.isValid("65345678901234567")); assertFalse("Length 18-6011", regex.isValid("601156789012345678")); assertFalse("Length 18-65", regex.isValid("653456789012345678"));