You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by lu...@apache.org on 2017/04/24 08:12:22 UTC
[2/8] struts git commit: WW-3952 Adds test to check implementation
WW-3952 Adds test to check implementation
Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/fc497360
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/fc497360
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/fc497360
Branch: refs/heads/master
Commit: fc497360bee7084293749f712dec233eb219bbf4
Parents: 01d710b
Author: Lukasz Lenart <lu...@apache.org>
Authored: Wed Apr 19 18:06:17 2017 +0200
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Wed Apr 19 18:06:17 2017 +0200
----------------------------------------------------------------------
.../validators/CreditCardValidatorTest.java | 230 +++++++++++++++++++
1 file changed, 230 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/struts/blob/fc497360/core/src/test/java/com/opensymphony/xwork2/validator/validators/CreditCardValidatorTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/validators/CreditCardValidatorTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/validators/CreditCardValidatorTest.java
new file mode 100644
index 0000000..877b964
--- /dev/null
+++ b/core/src/test/java/com/opensymphony/xwork2/validator/validators/CreditCardValidatorTest.java
@@ -0,0 +1,230 @@
+package com.opensymphony.xwork2.validator.validators;
+
+import com.opensymphony.xwork2.TextProviderFactory;
+import com.opensymphony.xwork2.util.ValueStack;
+import com.opensymphony.xwork2.util.ValueStackFactory;
+import com.opensymphony.xwork2.validator.DummyValidatorContext;
+import com.opensymphony.xwork2.validator.ValidatorContext;
+import org.apache.struts2.StrutsInternalTestCase;
+
+import java.util.Arrays;
+import java.util.List;
+
+public class CreditCardValidatorTest extends StrutsInternalTestCase {
+
+ private CreditCardValidator validator;
+ private CreditCardAction action;
+ private ValidatorContext context;
+
+ public void testInvalidCardNumber() throws Exception {
+ // given
+ action.setAmericanExpress("123456768900");
+ validator.setFieldName("americanExpress");
+ validator.setDefaultMessage("It is not a valid American Express card number: ${americanExpress}");
+
+ // when
+ validator.validate(action);
+
+ // then
+ assertTrue(context.hasFieldErrors());
+ assertEquals(1, context.getFieldErrors().size());
+ assertEquals("It is not a valid American Express card number: 123456768900", context.getFieldErrors().get("americanExpress").get(0));
+ }
+
+ public void testInvalidArrayOfCardNumbers() throws Exception {
+ // given
+ action.setAmericanExpresses(new String[]{"098776544322"});
+ validator.setFieldName("americanExpresses");
+ validator.setDefaultMessage("It is not a valid American Express card number: ${currentValue}");
+
+ // when
+ validator.validate(action);
+
+ // then
+ assertTrue(context.hasFieldErrors());
+ assertEquals(1, context.getFieldErrors().size());
+ assertEquals("It is not a valid American Express card number: 098776544322", context.getFieldErrors().get("americanExpresses").get(0));
+ }
+
+ public void testEmptyArrayOfCardNumbers() throws Exception {
+ // given
+ action.setAmericanExpresses(new String[]{});
+ validator.setFieldName("americanExpresses");
+ validator.setDefaultMessage("It is not a valid American Express card number: ${currentValue}");
+
+ // when
+ validator.validate(action);
+
+ // then
+ assertFalse(context.hasFieldErrors());
+ }
+
+ public void testInvalidCollectionOfCardNumbers() throws Exception {
+ // given
+ action.setDinerClubs(Arrays.asList("75736151433"));
+ validator.setFieldName("dinerClubs");
+ validator.setDefaultMessage("It is not a valid Diner Club card number: ${currentValue}");
+
+ // when
+ validator.validate(action);
+
+ // then
+ assertTrue(context.hasFieldErrors());
+ assertEquals(1, context.getFieldErrors().size());
+ assertEquals("It is not a valid Diner Club card number: 75736151433", context.getFieldErrors().get("dinerClubs").get(0));
+ }
+
+ public void testValidAmericanExpressCard() throws Exception {
+ // given
+ action.setAmericanExpress("378282246310005");
+ validator.setFieldName("americanExpress");
+
+ // when
+ validator.validate(action);
+
+ // then
+ assertFalse(context.hasFieldErrors());
+ }
+
+ public void testValidAmericanExpressCardWithSpaces() throws Exception {
+ // given
+ action.setAmericanExpress("3782 8224 6310 005");
+ validator.setFieldName("americanExpress");
+
+ // when
+ validator.validate(action);
+
+ // then
+ assertFalse(context.hasFieldErrors());
+ }
+
+ public void testValidDinersClubCard() throws Exception {
+ // given
+ action.setDinersClub("30569309025904");
+ validator.setFieldName("dinersClub");
+
+ // when
+ validator.validate(action);
+
+ // then
+ assertFalse(context.hasFieldErrors());
+ }
+
+ public void testValidJCBCard() throws Exception {
+ // given
+ action.setJCB("3530111333300000");
+ validator.setFieldName("JCB");
+
+ // when
+ validator.validate(action);
+
+ // then
+ assertFalse(context.hasFieldErrors());
+ }
+
+ public void testMasterCardCard() throws Exception {
+ // given
+ action.setMasterCard("5555555555554444");
+ validator.setFieldName("masterCard");
+
+ // when
+ validator.validate(action);
+
+ // then
+ assertFalse(context.hasFieldErrors());
+ }
+
+ public void testVisaCard() throws Exception {
+ // given
+ action.setVisa("4111111111111111");
+ validator.setFieldName("visa");
+
+ // when
+ validator.validate(action);
+
+ // then
+ assertFalse(context.hasFieldErrors());
+ }
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ validator = new CreditCardValidator();
+ action = new CreditCardAction();
+ TextProviderFactory tpf = container.getInstance(TextProviderFactory.class);
+ context = new DummyValidatorContext(action, tpf);
+ validator.setValidatorContext(context);
+
+ ValueStack valueStack = container.getInstance(ValueStackFactory.class).createValueStack();
+ valueStack.push(action);
+
+ validator.setValueStack(valueStack);
+ }
+
+}
+
+class CreditCardAction {
+
+ private String americanExpress;
+ private String dinersClub;
+ private String JCB;
+ private String masterCard;
+ private String visa;
+ private String[] americanExpresses;
+ private List<String> dinerClubs;
+
+ public void setAmericanExpress(String americanExpress) {
+ this.americanExpress = americanExpress;
+ }
+
+ public String getAmericanExpress() {
+ return americanExpress;
+ }
+
+ public void setDinersClub(String dinersClub) {
+ this.dinersClub = dinersClub;
+ }
+
+ public String getDinersClub() {
+ return dinersClub;
+ }
+
+ public void setJCB(String JCB) {
+ this.JCB = JCB;
+ }
+
+ public String getJCB() {
+ return JCB;
+ }
+
+ public void setMasterCard(String masterCard) {
+ this.masterCard = masterCard;
+ }
+
+ public String getMasterCard() {
+ return masterCard;
+ }
+
+ public void setVisa(String visa) {
+ this.visa = visa;
+ }
+
+ public String getVisa() {
+ return visa;
+ }
+
+ public void setAmericanExpresses(String[] americanExpresses) {
+ this.americanExpresses = americanExpresses;
+ }
+
+ public String[] getAmericanExpresses() {
+ return americanExpresses;
+ }
+
+ public void setDinerClubs(List<String> dinerClubs) {
+ this.dinerClubs = dinerClubs;
+ }
+
+ public List<String> getDinerClubs() {
+ return dinerClubs;
+ }
+}