Package org.hibernate.validator.test.internal.constraintvalidators.hv

Source Code of org.hibernate.validator.test.internal.constraintvalidators.hv.CreditCardNumberValidatorTest$CreditCard

/*
* Hibernate Validator, declare and validate application constraints
*
* License: Apache License, Version 2.0
* See the license.txt file in the root directory or <http://www.apache.org/licenses/LICENSE-2.0>.
*/
package org.hibernate.validator.test.internal.constraintvalidators.hv;

import java.util.Set;
import javax.validation.ConstraintViolation;
import javax.validation.Validator;

import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

import org.hibernate.validator.constraints.CreditCardNumber;
import org.hibernate.validator.testutil.MyCustomStringImpl;
import org.hibernate.validator.testutil.TestForIssue;

import static org.hibernate.validator.testutil.ConstraintViolationAssert.assertNumberOfViolations;
import static org.hibernate.validator.testutil.ValidatorUtil.getValidator;

/**
* @author Hardy Ferentschik
*/
public class CreditCardNumberValidatorTest {
  private static Validator validator;

  @BeforeClass
  public static void init() {
    validator = getValidator();
  }

  @Test
  public void testInvalidCreditCardNumber() throws Exception {
    CreditCard card = new CreditCard();
    card.setCreditCardNumber( "1234567890123456" );
    Set<ConstraintViolation<CreditCard>> constraintViolations = validator.validate( card );
    assertNumberOfViolations( constraintViolations, 1 );
  }

  @Test
  @TestForIssue(jiraKey = "HV-502")
  public void testInvalidCreditCardNumberAsCharSequence() throws Exception {
    CreditCard card = new CreditCard();
    card.setCreditCardNumberAsCharSequence( new MyCustomStringImpl( "1234567890123456" ) );
    Set<ConstraintViolation<CreditCard>> constraintViolations = validator.validate( card );
    assertNumberOfViolations( constraintViolations, 1 );
  }

  @Test
  public void testValidCreditCardNumber() throws Exception {
    CreditCard card = new CreditCard();
    card.setCreditCardNumber( "541234567890125" );
    Set<ConstraintViolation<CreditCard>> constraintViolations = validator.validate( card );
    assertNumberOfViolations( constraintViolations, 0 );
  }

  @Test
  @TestForIssue(jiraKey = "HV-502")
  public void testValidCreditCardNumberAsCharSequence() throws Exception {
    CreditCard card = new CreditCard();
    card.setCreditCardNumberAsCharSequence( new MyCustomStringImpl( "541234567890125" ) );
    Set<ConstraintViolation<CreditCard>> constraintViolations = validator.validate( card );
    assertNumberOfViolations( constraintViolations, 0 );
  }

  @Test
  @TestForIssue(jiraKey = "HV-901")
  public void testValidCreditCardNumberWithZeroCheckDigit() throws Exception {
    CreditCard card = new CreditCard();
    card.setCreditCardNumber( "5105105105105100" );
    Set<ConstraintViolation<CreditCard>> constraintViolations = validator.validate( card );
    assertNumberOfViolations( constraintViolations, 0 );
  }

  @Test
  public void testNullValue() throws Exception {
    Set<ConstraintViolation<CreditCard>> constraintViolations = validator.validate( new CreditCard() );
    assertNumberOfViolations( constraintViolations, 0 );
  }

  @Test
  @TestForIssue(jiraKey = "HV-906")
  public void testCharactersAreNotAllowedTest() {
    CreditCard card = new CreditCard();
    card.setCreditCardNumber( "text not numbers" );
    Set<ConstraintViolation<CreditCard>> constraintViolations = validator.validate( card );
    assertNumberOfViolations( constraintViolations, 1 );
  }

  @Test
  @TestForIssue(jiraKey = "HV-906")
  public void testValidCreditCardNumberWithSpaces() throws Exception {
    CreditCard card = new CreditCard();
    card.setCreditCardNumberWithNonDigits( "5412 3456 7890 125" );
    Set<ConstraintViolation<CreditCard>> constraintViolations = validator.validate( card );
    assertNumberOfViolations( constraintViolations, 0 );
  }

  @Test
  @TestForIssue(jiraKey = "HV-906")
  public void testValidCreditCardNumberWithDashes() throws Exception {
    CreditCard card = new CreditCard();
    card.setCreditCardNumberWithNonDigits( "5412-3456-7890-125" );
    Set<ConstraintViolation<CreditCard>> constraintViolations = validator.validate( card );
    assertNumberOfViolations( constraintViolations, 0 );
  }

  public static class CreditCard {
    @CreditCardNumber
    String creditCardNumber;

    @CreditCardNumber(ignoreNonDigitCharacters = true)
    String creditCardNumberWithNonDigits;

    @CreditCardNumber
    CharSequence creditCardNumberAsCharSequence;

    public void setCreditCardNumber(String creditCardNumber) {
      this.creditCardNumber = creditCardNumber;
    }

    public void setCreditCardNumberAsCharSequence(CharSequence creditCardNumberAsCharSequence) {
      this.creditCardNumberAsCharSequence = creditCardNumberAsCharSequence;
    }

    public void setCreditCardNumberWithNonDigits(String creditCardNumberWithNonDigits) {
      this.creditCardNumberWithNonDigits = creditCardNumberWithNonDigits;
    }
  }
}
TOP

Related Classes of org.hibernate.validator.test.internal.constraintvalidators.hv.CreditCardNumberValidatorTest$CreditCard

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.