Repository: wicket
Updated Branches:
  refs/heads/wicket-6.x 96695e18e -> fd33ad02d


WICKET-5891 Parsing of ChinUnionPay credit card should use the first 6 
characters


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/fd33ad02
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/fd33ad02
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/fd33ad02

Branch: refs/heads/wicket-6.x
Commit: fd33ad02d4d4824c1cabdae0bdce41343926bf7f
Parents: 96695e1
Author: Martin Tzvetanov Grigorov <[email protected]>
Authored: Thu Apr 23 10:24:41 2015 +0300
Committer: Martin Tzvetanov Grigorov <[email protected]>
Committed: Thu Apr 23 10:25:11 2015 +0300

----------------------------------------------------------------------
 .../wicket/validation/validator/CreditCardValidator.java |  2 +-
 .../validation/validator/CreditCardValidatorTest.java    | 11 +++++++++++
 2 files changed, 12 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/fd33ad02/wicket-core/src/main/java/org/apache/wicket/validation/validator/CreditCardValidator.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/validation/validator/CreditCardValidator.java
 
b/wicket-core/src/main/java/org/apache/wicket/validation/validator/CreditCardValidator.java
index 97e66f2..fac28ad 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/validation/validator/CreditCardValidator.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/validation/validator/CreditCardValidator.java
@@ -321,7 +321,7 @@ public class CreditCardValidator implements 
IValidator<String>
                if ((creditCardNumber.length() >= 16 && 
creditCardNumber.length() <= 19) &&
                        (creditCardNumber.startsWith("622")))
                {
-                       int firstDigits = 
Integer.parseInt(creditCardNumber.substring(0, 5));
+                       int firstDigits = 
Integer.parseInt(creditCardNumber.substring(0, 6));
                        if (firstDigits >= 622126 && firstDigits <= 622925)
                        {
                                return CreditCard.CHINA_UNIONPAY;

http://git-wip-us.apache.org/repos/asf/wicket/blob/fd33ad02/wicket-core/src/test/java/org/apache/wicket/validation/validator/CreditCardValidatorTest.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/validation/validator/CreditCardValidatorTest.java
 
b/wicket-core/src/test/java/org/apache/wicket/validation/validator/CreditCardValidatorTest.java
index 04cb6c6..3407e49 100644
--- 
a/wicket-core/src/test/java/org/apache/wicket/validation/validator/CreditCardValidatorTest.java
+++ 
b/wicket-core/src/test/java/org/apache/wicket/validation/validator/CreditCardValidatorTest.java
@@ -156,4 +156,15 @@ public class CreditCardValidatorTest extends Assert
                CreditCardValidator validator = new CreditCardValidator();
                assertEquals(CreditCard.VISA, 
validator.determineCardId("4111111111111111"));
        }
+
+       /**
+        * https://issues.apache.org/jira/browse/WICKET-5891
+        */
+       @Test
+       public void isChinaUnionPay()
+       {
+               CreditCardValidator validator = new CreditCardValidator();
+               CreditCard creditCard = 
validator.determineCardId("6222601010012578692");
+               assertEquals(CreditCard.CHINA_UNIONPAY, creditCard);
+       }
 }

Reply via email to