package org.transgalactica.management.data.people.bo.validation;
import static org.junit.Assert.assertEquals;
import java.time.LocalDate;
import java.util.Set;
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import org.junit.Before;
import org.junit.Test;
public class PastTest {
private PastTestBean bean;
@Before
public void setup() {
bean = new PastTestBean();
}
@Test
public void thatNullIsValid() {
Set<ConstraintViolation<PastTestBean>> violations = validateClass(bean);
assertEquals(violations.size(), 0);
}
@Test
public void thatYesterdayIsValid() throws Exception {
bean.setDate(LocalDate.now().minusDays(1));
Set<ConstraintViolation<PastTestBean>> violations = validateClass(bean);
assertEquals(violations.size(), 0);
}
@Test
public void thatTodayIsValid() throws Exception {
bean.setDate(LocalDate.now());
Set<ConstraintViolation<PastTestBean>> violations = validateClass(bean);
assertEquals(violations.size(), 0);
}
@Test
public void thatTomorrowIsInvalid() throws Exception {
bean.setDate(LocalDate.now().plusDays(1));
Set<ConstraintViolation<PastTestBean>> violations = validateClass(bean);
assertEquals(violations.size(), 1);
}
private Set<ConstraintViolation<PastTestBean>> validateClass(PastTestBean myClass) {
Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
return validator.validate(myClass);
}
public static class PastTestBean {
@Past
private LocalDate date;
public void setDate(LocalDate date) {
this.date = date;
}
}
}