Repository: wicket
Updated Branches:
  refs/heads/master 24e9db6c8 -> 2d9ebf9af


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

(cherry picked from commit d02ad24424d72fa944066c2b7e47c86b1d3e6480)


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

Branch: refs/heads/master
Commit: 2d9ebf9af8f9efb9cc195959b7e925d70a97a533
Parents: 24e9db6
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:27:24 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/2d9ebf9a/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 28225c2..eeff47b 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
@@ -322,7 +322,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/2d9ebf9a/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