/** * Test getNotesByBBox - set limit and closed * * @return void */ public function testGetNotesByBBoxSetLimitAndClosed() { $mock = new HTTP_Request2_Adapter_Mock(); $mock->addResponse(fopen(__DIR__ . '/responses/capabilities.xml', 'rb')); $mock->addResponse(fopen(__DIR__ . '/responses/get_notes.xml', 'rb')); $server = 'http://api06.dev.openstreetmap.org/'; $config = array('adapter' => $mock, 'verbose' => true, 'server' => $server); $osm = new Services_OpenStreetMap($config); $log = new Log_null('null', 'null', array(), 7); $observer = new Log_Observer_Simple(); $log->attach($observer); $osm->getTransport()->setLog($log); $minlon = "-8.2456593"; $minlat = "52.8488977"; $maxlon = "-8.1751247"; $maxlat = "52.8839662"; $notes = $osm->getNotesByBbox($minlon, $minlat, $maxlon, $maxlat, 200, 14); $url = $observer->entries[0]['message']; $this->assertEquals($url, "{$server}" . "api/0.6/notes.xml?" . "bbox={$minlon},{$minlat},{$maxlon},{$maxlat}&limit=200&closed=14"); }
/** * Test retrieving data covering an area. * * @return void */ public function testGetArea() { $mock = new HTTP_Request2_Adapter_Mock(); $mock->addResponse(fopen(__DIR__ . '/responses/capabilities.xml', 'rb')); $mock->addResponse(fopen(__DIR__ . '/responses/area.xml', 'rb')); $server = 'http://api06.dev.openstreetmap.org/'; $config = array('adapter' => $mock, 'verbose' => true, 'server' => $server); $osm = new Services_OpenStreetMap($config); $results = $osm->search(array('amenity' => 'pharmacy')); $this->AssertTrue(empty($results)); $minlon = "-8.247245026639696"; $minlat = "52.84824191354071"; $maxlat = "52.89957825532213"; $maxlon = "-8.174161478654796"; $log = new Log_null('null', 'null', array(), 7); $observer = new Log_OSMTest_Observer(); $log->attach($observer); $osm->getTransport()->setLog($log); $osm->get($minlon, $minlat, $maxlon, $maxlat); $entry = $observer->entries[0]; $this->assertEquals($entry['message'], "{$server}" . "api/0.6/map?bbox={$minlon},{$minlat},{$maxlon},{$maxlat}"); $obj = simplexml_load_string($osm->getXml())->xpath('//bounds'); $attribs = $obj[0]->attributes(); $pxminlon = sprintf("%2.7f", (string) $attribs['minlon']); $pxminlat = sprintf("%2.7f", (string) $attribs['minlat']); $pxmaxlat = sprintf("%2.7f", (string) $attribs['maxlat']); $pxmaxlon = sprintf("%2.7f", (string) $attribs['maxlon']); $this->assertEquals($pxminlon, sprintf("%2.7f", $minlon)); $this->assertEquals($pxminlat, sprintf("%2.7f", $minlat)); $this->assertEquals($pxmaxlat, sprintf("%2.7f", $maxlat)); $this->assertEquals($pxmaxlon, sprintf("%2.7f", $maxlon)); $results = $osm->search(array('amenity' => 'pharmacy')); $tags = array(); foreach ($results as $result) { $tags[] = $result->getTags(); } $this->assertEquals($tags, array(0 => array('addr:city' => 'Nenagh', 'addr:country' => 'IE', 'addr:housename' => '20-21', 'addr:street' => 'Pearse Street', 'amenity' => 'pharmacy', 'building' => 'yes', 'building:levels' => '3', 'building:use' => 'retail', 'dispensing' => 'yes', 'fax' => '+353 67 34540', 'name' => 'Ryans Pharmacy and Beauty Salon', 'phone' => '+353 67 31464'), 1 => array('addr:city' => 'Nenagh', 'addr:country' => 'IE', 'addr:housename' => '7', 'addr:street' => 'Pearse Street', 'amenity' => 'pharmacy', 'building' => 'yes', 'dispensing' => 'yes', 'name' => 'Ray Walsh', 'opening_hours' => 'Mo-Fr 09:30-19:00', 'phone' => '+353 67 31249', 'shop' => 'chemist'), 2 => array('addr:city' => 'Nenagh', 'addr:country' => 'IE', 'addr:housename' => '20-21', 'addr:street' => 'Pearse Street', 'amenity' => 'pharmacy', 'building' => 'yes', 'building:levels' => '3', 'building:use' => 'retail', 'dispensing' => 'yes', 'fax' => '+353 67 34540', 'name' => 'Ryans Pharmacy and Beauty Salon', 'phone' => '+353 67 31464'), 3 => array('addr:city' => 'Nenagh', 'addr:country' => 'IE', 'addr:housenumber' => 'Unit 1A', 'addr:street' => 'O\'Connors Shopping Centre', 'amenity' => 'pharmacy', 'name' => 'Ann Kelly\'s', 'opening_hours' => 'Mo-Th 09:00-18:00; Fr 09:00-19:30; Sa 09:00-18:00', 'phone' => '+353 67 34244'), 4 => array('addr:city' => 'Nenagh', 'addr:country' => 'IE', 'addr:housename' => '7', 'addr:street' => 'Mitchell Street', 'amenity' => 'pharmacy', 'dispensing' => 'yes', 'name' => 'Guierins', 'phone' => '+353 67 31447'), 5 => array('addr:city' => 'Nenagh', 'addr:country' => 'IE', 'addr:housenumber' => '69', 'addr:street' => 'Kenyon Street', 'amenity' => 'pharmacy', 'dispensing' => 'yes', 'name' => 'Finnerty\'s', 'phone' => '+353 67 34155'), 6 => array('addr:city' => 'Nenagh', 'addr:country' => 'IE', 'addr:housenumber' => '67', 'addr:street' => 'Kenyon Street', 'amenity' => 'pharmacy', 'name' => 'Cuddys', 'phone' => '+353 67 31262'), 7 => array('addr:city' => 'Nenagh', 'addr:country' => 'IE', 'addr:street' => 'Clare Street', 'amenity' => 'pharmacy', 'dispensing' => 'yes', 'fax' => '+3536742775', 'name' => 'Clare Street Pharmacy', 'opening_hours' => 'Mo-Sa 09:15-18:00', 'phone' => '+3536742775'))); }