package at.tugraz.examreminder.service; import android.content.Context; import android.database.Cursor; import android.net.Uri; import android.os.Build; import android.provider.CalendarContract; import android.test.InstrumentationTestCase; import at.tugraz.examreminder.core.Course; import at.tugraz.examreminder.core.Exam; import java.util.Calendar; import java.util.GregorianCalendar; public class CalendarHelperTest extends InstrumentationTestCase { private Context context; public static final long CALENDAR_ID=1; //Default google calendar on most devices @Override protected void setUp() throws Exception { super.setUp(); context = getInstrumentation().getTargetContext(); } @Override protected void tearDown() throws Exception { super.tearDown(); //To change body of overridden methods use File | Settings | File Templates. } public void testAddAndDeleteEvent() { if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH) { return; } Course course = new Course(); course.name = "UnitTest Course #1"; Exam exam = new Exam(course); GregorianCalendar calendar = new GregorianCalendar(2015,1,1,12,0,0); exam.setFrom((GregorianCalendar) calendar.clone()); calendar.set(Calendar.HOUR_OF_DAY, 15); exam.setTo((GregorianCalendar) calendar.clone()); assertEquals("Before adding an event, the exam shoudl not have a valid event_id", -1, exam.event_id); CalendarHelper calendarHelper = new CalendarHelper(context); calendarHelper.addExamEvent(CALENDAR_ID, exam); long event_id = exam.event_id; assertFalse("Exam should now contain an event_id after adding the event", exam.event_id == -1); assertTrue("Event should exist after adding it", eventExists(event_id)); calendarHelper.deleteExamEvent(exam); assertFalse("Event should now be deleted", eventExists(event_id)); assertEquals("After deleting an event, the exam shoudl not have a valid event_id", -1, exam.event_id); } private boolean eventExists(long event_id) { Uri.Builder builder = CalendarContract.Events.CONTENT_URI.buildUpon(); Uri uri = builder.appendPath(String.valueOf(event_id)).build(); Cursor cursor = context.getContentResolver().query(uri, null, null, null, null); return cursor.getCount() != 0; } }