package br.com.caelum.stella.bean.validation.xml.logic;
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.Min;
import br.com.caelum.stella.bean.validation.xml.logic.StellaMinValidator;
@SuppressWarnings("deprecation")
final public class StellaMinValidatorTest {
private ConstraintValidatorContext context = Mockito.mock(ConstraintValidatorContext.class);
@Test
public void testThatNullIsValid() {
StellaMinValidator validator = new StellaMinValidator();
Assert.assertTrue(validator.isValid(null,context));
}
@Test
public void testThatAcceptsOnlyByteShortIntegerAndLong() {
StellaMinValidator validator = new StellaMinValidator();
validator.initialize(new Mirror().on(AnnotatedModel.class).reflect().annotation(Min.class).atField("b"));
Assert.assertTrue(validator.isValid((byte) 20,context));
Assert.assertTrue(validator.isValid((short) 20,context));
Assert.assertTrue(validator.isValid(20,context));
Assert.assertTrue(validator.isValid((long) 20,context));
}
@Test
public void testThatIsInvalidIfValueIsLessThanAnnotatedValue() {
StellaMinValidator validator = new StellaMinValidator();
validator.initialize(new Mirror().on(AnnotatedModel.class).reflect().annotation(Min.class).atField("b"));
Assert.assertFalse(validator.isValid(9,context));
}
@Test
public void testThatIsValidIfValueIsEqualToAnnotatedValue() {
StellaMinValidator validator = new StellaMinValidator();
validator.initialize(new Mirror().on(AnnotatedModel.class).reflect().annotation(Min.class).atField("b"));
Assert.assertTrue(validator.isValid(10,context));
}
public static class AnnotatedModel {
@Min(10)
public Byte b;
}
}