You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by se...@apache.org on 2015/11/06 00:10:45 UTC
svn commit: r1712874 - in /commons/proper/validator/trunk/src:
changes/changes.xml
main/java/org/apache/commons/validator/routines/CreditCardValidator.java
test/java/org/apache/commons/validator/routines/CreditCardValidatorTest.java
Author: sebb
Date: Thu Nov 5 23:10:45 2015
New Revision: 1712874
URL: http://svn.apache.org/viewvc?rev=1712874&view=rev
Log:
VALIDATOR-372 Validate 19 digit VPay (VISA)
Modified:
commons/proper/validator/trunk/src/changes/changes.xml
commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/routines/CreditCardValidator.java
commons/proper/validator/trunk/src/test/java/org/apache/commons/validator/routines/CreditCardValidatorTest.java
Modified: commons/proper/validator/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/commons/proper/validator/trunk/src/changes/changes.xml?rev=1712874&r1=1712873&r2=1712874&view=diff
==============================================================================
--- commons/proper/validator/trunk/src/changes/changes.xml (original)
+++ commons/proper/validator/trunk/src/changes/changes.xml Thu Nov 5 23:10:45 2015
@@ -43,6 +43,9 @@ The <action> type attribute can be add,u
<body>
<release version="1.5.0" date="tba" description="tba">
+ <action issue="VALIDATOR-372" type="add" dev="sebb">
+ Validate 19 digit VPay (VISA)
+ </action>
<action issue="VALIDATOR-375" type="fix" dev="sebb">
UrlValidator fails on IPv6 URL
</action>
Modified: commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/routines/CreditCardValidator.java
URL: http://svn.apache.org/viewvc/commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/routines/CreditCardValidator.java?rev=1712874&r1=1712873&r2=1712874&view=diff
==============================================================================
--- commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/routines/CreditCardValidator.java (original)
+++ commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/routines/CreditCardValidator.java Thu Nov 5 23:10:45 2015
@@ -98,6 +98,12 @@ public class CreditCardValidator impleme
public static final long DINERS = 1 << 4;
/**
+ * Option specifying that VPay (Visa) cards are allowed.
+ */
+ public static final long VPAY = 1 << 5;
+
+
+ /**
* The CreditCardTypes that are allowed to pass validation.
*/
private final List<CodeValidator> cardTypes = new ArrayList<CodeValidator>();
@@ -125,6 +131,9 @@ public class CreditCardValidator impleme
/** Visa Card Validator */
public static final CodeValidator VISA_VALIDATOR = new CodeValidator("^(4)(\\d{12}|\\d{15})$", LUHN_VALIDATOR);
+ /** VPay (Visa) Card Validator */
+ public static final CodeValidator VPAY_VALIDATOR = new CodeValidator("^(4)(\\d{12,18})$", LUHN_VALIDATOR);
+
/**
* Create a new CreditCardValidator with default options.
*/
@@ -145,6 +154,10 @@ public class CreditCardValidator impleme
this.cardTypes.add(VISA_VALIDATOR);
}
+ if (isOn(options, VPAY)) {
+ this.cardTypes.add(VPAY_VALIDATOR);
+ }
+
if (isOn(options, AMEX)) {
this.cardTypes.add(AMEX_VALIDATOR);
}
Modified: commons/proper/validator/trunk/src/test/java/org/apache/commons/validator/routines/CreditCardValidatorTest.java
URL: http://svn.apache.org/viewvc/commons/proper/validator/trunk/src/test/java/org/apache/commons/validator/routines/CreditCardValidatorTest.java?rev=1712874&r1=1712873&r2=1712874&view=diff
==============================================================================
--- commons/proper/validator/trunk/src/test/java/org/apache/commons/validator/routines/CreditCardValidatorTest.java (original)
+++ commons/proper/validator/trunk/src/test/java/org/apache/commons/validator/routines/CreditCardValidatorTest.java Thu Nov 5 23:10:45 2015
@@ -40,6 +40,9 @@ public class CreditCardValidatorTest ext
private static final String ERROR_DISCOVER65 = "6534567890123450"; // FIXME need verified test data for Discover with "65" prefix
private static final String VALID_DINERS = "30569309025904";
private static final String ERROR_DINERS = "30569309025901";
+ private static final String VALID_VPAY = "4370000000000061";
+ private static final String VALID_VPAY2 = "4370000000000012";
+ private static final String ERROR_VPAY = "4370000000000069";
/**
* Constructor for CreditCardValidatorTest.
@@ -464,6 +467,22 @@ public class CreditCardValidatorTest ext
assertTrue("Visa Short", validator.isValid(VALID_SHORT_VISA));
}
+ public void testVPayOption() {
+ CreditCardValidator validator = new CreditCardValidator(CreditCardValidator.VPAY);
+ assertTrue("Valid", validator.isValid(VALID_VPAY));
+ assertTrue("Valid", validator.isValid(VALID_VPAY2));
+ assertFalse("Invalid", validator.isValid(ERROR_VPAY));
+ assertEquals(VALID_VPAY, validator.validate(VALID_VPAY));
+ assertEquals(VALID_VPAY2, validator.validate(VALID_VPAY2));
+
+ assertFalse("Amex", validator.isValid(VALID_AMEX));
+ assertFalse("Diners", validator.isValid(VALID_DINERS));
+ assertFalse("Discover", validator.isValid(VALID_DISCOVER));
+ assertFalse("Mastercard", validator.isValid(VALID_MASTERCARD));
+ assertTrue("Visa", validator.isValid(VALID_VISA));
+ assertTrue("Visa Short", validator.isValid(VALID_SHORT_VISA));
+ }
+
/**
* Test using separators
*/