package br.com.caelum.stella.bean.validation.xml;
import javax.validation.ConstraintValidatorContext;
import junit.framework.Assert;
import net.vidageek.mirror.dsl.Mirror;
import org.junit.Test;
import org.mockito.Mockito;
import br.com.caelum.stella.bean.validation.xml.Pattern;
import br.com.caelum.stella.bean.validation.xml.logic.StellaPatternValidator;
@SuppressWarnings("deprecation")
public class StellaPatternValidatorTest {
private ConstraintValidatorContext context = Mockito
.mock(ConstraintValidatorContext.class);
public static class AnnotatedModel {
@Pattern("")
public Integer i;
}
public static class AnnotatedModel2 {
@Pattern("[ab]*c")
public String i;
}
@Test
public void testThatIsValidIfPatternMatchesWholeString() {
StellaPatternValidator validator = new StellaPatternValidator();
validator.initialize(new Mirror().on(AnnotatedModel2.class).reflect()
.annotation(Pattern.class).atField("i"));
Assert.assertEquals(true, validator.isValid("babac", context));
}
public static class AnnotatedModel3 {
@Pattern("[ab]*")
public String i;
}
@Test
public void testThatIsNotValidIfMatchIsPartial() {
StellaPatternValidator validator = new StellaPatternValidator();
validator.initialize(new Mirror().on(AnnotatedModel3.class).reflect()
.annotation(Pattern.class).atField("i"));
Assert.assertEquals(false, validator.isValid("babac", context));
}
@Test
public void testThatNullIsValid() {
StellaPatternValidator validator = new StellaPatternValidator();
validator.initialize(new Mirror().on(AnnotatedModel3.class).reflect()
.annotation(Pattern.class).atField("i"));
Assert.assertEquals(true, validator.isValid(null, context));
}
}