package br.com.caelum.stella.bean.validation;
import static org.junit.Assert.assertTrue;
import javax.validation.ConstraintValidatorContext;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
import br.com.caelum.stella.bean.validation.AcceptAny;
import br.com.caelum.stella.bean.validation.logic.StellaAcceptAnyValidator;
import br.com.caelum.stella.validation.AcceptAnyValidator.Documento;
/**
* @author Leonardo Bessa
* @author David Paniz
*/
public class StellaAcceptAnyValidatorTest {
private ConstraintValidatorContext context = Mockito.mock(ConstraintValidatorContext.class);
private StellaAcceptAnyValidator validator;
private static class ObjectWithAnnotation {
@SuppressWarnings("unused")
@AcceptAny(documentos = { Documento.CPF, Documento.CNPJ })
private String cpfOrCnpj;
}
@Before
public void createValidator() throws Exception {
AcceptAny annotation = ObjectWithAnnotation.class.getDeclaredField("cpfOrCnpj").getAnnotation(AcceptAny.class);
validator = new StellaAcceptAnyValidator();
validator.initialize(annotation);
}
@Test
public void shouldOnlyValidateStrings() {
{
boolean valid = validator.isValid("44474042000130", context);
assertTrue(valid);
}
{
boolean valid = validator.isValid("03118383402", context);
assertTrue(valid);
}
}
@Test
public void shouldValidateNull() {
boolean valid = validator.isValid(null, context);
assertTrue(valid);
}
@Test
public void shouldValidateEmpty() {
boolean valid = validator.isValid("", context);
assertTrue(valid);
}
}