/** * Tests whether the page parser can pull prices, URL's, and titles from valid and empty pages. * * @throws ParserConfigurationException * @throws SAXException * @throws IOException */ @Test public void testPageParser() throws ParserConfigurationException, SAXException, IOException { // Test a page that has valid results. InputStream validResultsInputStream = new FileInputStream(new File(PROJECT_PATH + TEST_VALID_XML_PATH)); List<Ad> adsFromValidPage = PageParser.fromInputStream(validResultsInputStream); // Test a few prices. assertEquals(1500000, adsFromValidPage.get(0).getPriceInCents()); assertEquals(119900000, adsFromValidPage.get(10).getPriceInCents()); assertEquals(209800000, adsFromValidPage.get(24).getPriceInCents()); // Test a title. assertEquals( "One Bluxome Street #316 OPEN HOUSE TODAY 1-4:00 PM 2Bed/1.5 Bath (SOMA / south beach) $1199000 2bd 1361sqft", adsFromValidPage.get(10).getDcTitle()); // Test a URL. assertEquals( "http://sfbay.craigslist.org/sfc/reb/3963411826.html", adsFromValidPage.get(11).getURL()); // Test whether a page that has no results can instantiate. InputStream noResultsFileStream = new FileInputStream(new File(PROJECT_PATH + TEST_NO_RESULTS_XML_PATH)); try { List<Ad> adsFromNoResultsPage = PageParser.fromInputStream(noResultsFileStream); } catch (Exception e) { e.printStackTrace(); fail("Could not parse a page with no results"); } }
@Before protected void setUp() throws SAXException, IOException, ParserConfigurationException { fileStream = new FileInputStream(new File(TestPageParser.PROJECT_PATH + TEST_STATS_XML)); stats = new Stats(PageParser.fromInputStream(fileStream)); }