package es.usc.citius.servando.calendula.activities;
import android.support.test.InstrumentationRegistry;
import android.support.test.espresso.action.ViewActions;
import android.test.ActivityInstrumentationTestCase2;
import org.junit.Before;
import org.junit.Test;
import es.usc.citius.servando.calendula.CalendulaApp;
import es.usc.citius.servando.calendula.R;
import es.usc.citius.servando.calendula.database.DB;
import es.usc.citius.servando.calendula.persistence.Medicine;
import es.usc.citius.servando.calendula.persistence.Presentation;
import es.usc.citius.servando.calendula.util.TestUtils;
import static android.support.test.espresso.Espresso.onView;
import static android.support.test.espresso.action.ViewActions.click;
import static android.support.test.espresso.action.ViewActions.typeText;
import static android.support.test.espresso.matcher.ViewMatchers.withId;
public class MedicinesActivityCreateTest extends ActivityInstrumentationTestCase2<MedicinesActivity> {
public static final String NAME = "Aspirin";
private MedicinesActivity mActivity;
public MedicinesActivityCreateTest() {
super(MedicinesActivity.class);
}
@Before
public void setUp() throws Exception {
super.setUp();
CalendulaApp.disableReceivers = true;
injectInstrumentation(InstrumentationRegistry.getInstrumentation());
DB.init(getInstrumentation().getContext());
DB.dropAndCreateDatabase();
mActivity = getActivity();
}
@Test
public void testActivityCreated() {
assertNotNull(mActivity);
}
@Test
public void testCreateMedicine() {
assertEquals(DB.medicines().count(), 0);
// type name
onView(withId(R.id.medicine_edit_name))
.perform(typeText(NAME), ViewActions.closeSoftKeyboard());
// close Soft Keyboard
TestUtils.closeKeyboard();
// select capsules presentation
onView(withId(R.id.med_presentation_2))
.perform(click());
// click save
onView(withId(R.id.add_button))
.perform(click());
Medicine m = DB.medicines().findOneBy(Medicine.COLUMN_NAME, NAME);
assertNotNull(m);
assertEquals(NAME, m.name());
assertEquals(Presentation.CAPSULES, m.presentation());
}
}