package at.tugraz.examreminder.service; import android.content.Context; import android.preference.PreferenceManager; import android.test.InstrumentationTestCase; import at.tugraz.examreminder.R; import at.tugraz.examreminder.core.Course; import at.tugraz.examreminder.core.CourseContainer; import at.tugraz.examreminder.core.Exam; import at.tugraz.examreminder.crawler.SimpleMockCrawler; import java.util.GregorianCalendar; import java.util.SortedSet; public class UpdateServiceTest extends InstrumentationTestCase { private Context context; private UpdateService updateService; @Override protected void setUp() throws Exception { super.setUp(); context = getInstrumentation().getTargetContext(); init(); UpdateService.setCrawlerToUse(SimpleMockCrawler.class); updateService = new UpdateService(); } @Override protected void tearDown() throws Exception { init(); UpdateService.setCrawlerToUse(null); updateService = null; super.tearDown(); } public void testCompareExamList() { Course course = SimpleMockCrawler.createCourses().get(0); CourseContainer.instance().add(course); SortedSet<Exam> exams = SimpleMockCrawler.createExams(course); boolean new_exams; new_exams = UpdateService.compareExamList(CourseContainer.instance().get(0).exams, exams); assertFalse("If nothing has changed, compareExamList should return false", new_exams); exams.first().setFrom(new GregorianCalendar(2014,1,1,13,0)); exams.first().setTo(new GregorianCalendar(2014,1,1,14,0)); new_exams = UpdateService.compareExamList(CourseContainer.instance().get(0).exams, exams); assertTrue("After changing the times compareExamList should return true", new_exams); exams = SimpleMockCrawler.createExams(course); Exam another_exam = exams.first().clone(); another_exam.setFrom(new GregorianCalendar(2014,1,3,13,0)); another_exam.setTo(new GregorianCalendar(2014,1,3,14,0)); exams.add(another_exam); new_exams = UpdateService.compareExamList(CourseContainer.instance().get(0).exams, exams); assertTrue("After adding an exam, compareExamList should return true", new_exams); } public void init(){ PreferenceManager.getDefaultSharedPreferences(context).edit().clear().commit(); //Reset default preferences!! PreferenceManager.setDefaultValues(context, R.xml.preferences, true); DailyListener.setNewPendingIntentAndCancelOld(context, null); //Cancel schedule ConnectivityReceiver.disableReceiver(context); CourseContainer.instance().clear(); } }