package es.usc.citius.servando.calendula.database; import android.support.test.InstrumentationRegistry; import android.test.InstrumentationTestCase; import org.joda.time.LocalDate; import org.joda.time.LocalTime; import org.junit.Before; import org.junit.Test; import es.usc.citius.servando.calendula.CalendulaApp; import es.usc.citius.servando.calendula.persistence.DailyScheduleItem; import es.usc.citius.servando.calendula.persistence.Medicine; import es.usc.citius.servando.calendula.persistence.PickupInfo; import es.usc.citius.servando.calendula.persistence.Presentation; import es.usc.citius.servando.calendula.persistence.Routine; import es.usc.citius.servando.calendula.persistence.Schedule; import es.usc.citius.servando.calendula.persistence.ScheduleItem; public class DBTest extends InstrumentationTestCase { @Before public void setUp() throws Exception { super.setUp(); CalendulaApp.disableReceivers = true; injectInstrumentation(InstrumentationRegistry.getInstrumentation()); DB.init(getInstrumentation().getContext()); DB.dropAndCreateDatabase(); } @Test public void testDaoSave() throws Exception { Routine r = new Routine(new LocalTime(0, 0), "Test"); Medicine m = new Medicine("TestMed", Presentation.CAPSULES); Schedule s = new Schedule(m); ScheduleItem i = new ScheduleItem(s, r); DailyScheduleItem d = new DailyScheduleItem(i); d.setTakenToday(true); PickupInfo pk = new PickupInfo(); pk.setFrom(LocalDate.parse("2015-01-01")); pk.setTo(LocalDate.parse("2015-02-05")); pk.setMedicine(m); // save some stuff DB.routines().save(r); DB.medicines().save(m); DB.schedules().save(s); DB.scheduleItems().save(i); DB.dailyScheduleItems().save(d); DB.pickups().save(pk); // verify id property created assertNotNull(r.getId()); assertNotNull(m.getId()); assertNotNull(s.getId()); assertNotNull(i.getId()); assertNotNull(d.getId()); assertNotNull(pk.id()); assertEquals(DB.pickups().findByMedicine(m).get(0).from(), LocalDate.parse("2015-01-01")); } @Test public void testDaoFind() throws Exception { testDaoSave(); assertEquals(DB.routines().findOneBy(Routine.COLUMN_NAME, "Test").time(), new LocalTime(0, 0)); assertEquals(DB.medicines().findAll().get(0).name(), "TestMed"); assertEquals(DB.schedules().findAll().get(0).items().size(), 1); } }