package org.tests.types;
import io.ebean.BaseTestCase;
import io.ebean.Ebean;
import org.tests.model.types.SomePeriodBean;
import org.junit.Test;
import java.sql.Date;
import java.time.LocalDate;
import java.time.MonthDay;
import java.util.List;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
public class TestPeriodType extends BaseTestCase {
@Test
public void testInsert() {
SomePeriodBean bean = new SomePeriodBean();
bean.setAnniversary(MonthDay.of(4, 29));
Ebean.save(bean);
SomePeriodBean bean1 = Ebean.find(SomePeriodBean.class, bean.getId());
assertEquals(bean.getAnniversary(), bean1.getAnniversary());
// insert fetch null value
SomePeriodBean bean2 = new SomePeriodBean();
Ebean.save(bean2);
SomePeriodBean bean3 = Ebean.find(SomePeriodBean.class, bean2.getId());
assertNull(bean3.getAnniversary());
List<SomePeriodBean> anniversaryList = Ebean.find(SomePeriodBean.class)
.where()
.eq("anniversary", MonthDay.of(4, 29))
.findList();
assertEquals(1, anniversaryList.size());
// must use year 2000 for range predicates
// ... using 2001 here so not finding anything
anniversaryList = Ebean.find(SomePeriodBean.class)
.where()
.gt("anniversary", Date.valueOf(LocalDate.of(2001, 4, 29)))
.findList();
assertEquals(0, anniversaryList.size());
// can use year 2000 for range predicates
// ... and can use LocalDate to bind
anniversaryList = Ebean.find(SomePeriodBean.class)
.where()
.gt("anniversary", LocalDate.of(2000, 4, 22))
.findList();
assertEquals(1, anniversaryList.size());
Ebean.delete(bean);
Ebean.delete(bean2);
}
}