import static org.junit.Assert.assertEquals;
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;
import org.hibernate.validator.constraints.CreditCardNumber;
import org.junit.BeforeClass;
import org.junit.Test;
public class CreditCardNumberValidatorTest {
private static Validator validator;
@BeforeClass
public static void setUp() {
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
validator = factory.getValidator();
}
@Test
public void validCardTest() {
User user = new User();
user.setCardNumber("4111111111111111");
assertEquals(0, validator.validate(user).size());
}
public void invalidNumberTest() {
User user = new User();
user.setCardNumber("400");
assertEquals(1, validator.validate(user).size());
}
@Test
public void invalidTextTest() {
User user = new User();
user.setCardNumber("text not numbers");
assertEquals(1, validator.validate(user).size());
}
}
class User {
@CreditCardNumber
public String cardNumber;
public String getCardNumber() {
return cardNumber;
}
public void setCardNumber(String cardNumber) {
this.cardNumber = cardNumber;
}
}