package at.tugraz.examreminder.crawler; import android.test.InstrumentationTestCase; import at.tugraz.examreminder.core.Course; import at.tugraz.examreminder.core.Exam; import junit.framework.Assert; import java.io.FileNotFoundException; import java.io.IOException; import java.util.List; import java.util.SortedSet; public class TuGrazSearchCrawlerTest extends InstrumentationTestCase { public void testCourseSearchDefault() throws IOException { TuGrazSearchCrawler crawler = new TuGrazSearchCrawler(); List<Course> courses; SortedSet<Exam> exams; courses = crawler.getCourseListFromFile(getInstrumentation().getContext().getAssets().open("searchterm_analysis.xml")); exams = crawler.getExamsFromFile(getInstrumentation().getContext().getAssets().open("searchterm_analysis.xml"), courses.get(6)); assertEquals("Wrong number of courses found!", courses.size(), 130); assertEquals("Wrong number of exams found!", exams.size(), 1); exams = crawler.getExamsFromFile(getInstrumentation().getContext().getAssets().open("searchterm_analysis.xml"), courses.get(0)); assertEquals("Wrong number of exams found!", exams.size(), 0); courses = crawler.getCourseListFromFile(getInstrumentation().getContext().getAssets().open("searchterm_operating.xml")); exams = crawler.getExamsFromFile(getInstrumentation().getContext().getAssets().open("searchterm_operating.xml"), courses.get(0)); assertEquals("Wrong number of courses found!", courses.size(), 6); assertEquals("Wrong number of exams found!", exams.size(), 0); exams = crawler.getExamsFromFile(getInstrumentation().getContext().getAssets().open("searchterm_operating.xml"), courses.get(5)); assertEquals("Wrong number of exams found!", exams.size(), 0); } public void testExamsWithAdditionalAttributes() throws IOException { TuGrazSearchCrawler crawler = new TuGrazSearchCrawler(); List<Course> courses; SortedSet<Exam> exams; courses = crawler.getCourseListFromFile(getInstrumentation().getContext().getAssets().open("searchterm_analysis.xml")); exams = crawler.getExamsFromFile(getInstrumentation().getContext().getAssets().open("searchterm_analysis.xml"), courses.get(6)); assertEquals("Wrong number of courses found!", courses.size(), 130); assertEquals("Wrong value in exam found!", "12.06.2013 23:55",exams.first().getCancelDeadline().toString()); assertEquals("Wrong value in exam found!", "12.06.2013 23:55",exams.first().getRegisterDeadline().toString()); } public void testSearchFileErrorHandling() throws IOException { TuGrazSearchCrawler crawler = new TuGrazSearchCrawler(); List<Course> courses = null; SortedSet<Exam> exams = null; try{ courses = crawler.getCourseListFromFile(getInstrumentation().getContext().getAssets().open("")); Assert.fail("No FileNotFoundException thrown!"); } catch(FileNotFoundException e) { assertEquals("Courses found, even when there was no valid data file!", courses == null ? 0 : courses.size(), 0); } try{ exams = crawler.getExamsFromFile(getInstrumentation().getContext().getAssets().open(""), null); Assert.fail("No FileNotFoundException thrown!"); } catch(FileNotFoundException e) { assertEquals("Exams found, even when there was no valid data file!", exams == null ? 0 : exams.size(), 0); } } }