/**
  * 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')));
 }
 /**
  * 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");
 }
Beispiel #3
0
 public function __construct()
 {
     parent::__construct('null');
 }