Esempio n. 1
0
 /**
  * Test adding nodes to a way.
  *
  * @return void
  */
 public function testAddNodeToWay()
 {
     $id = 23010474;
     $mock = new HTTP_Request2_Adapter_Mock();
     $mock->addResponse(fopen(__DIR__ . '/responses/capabilities.xml', 'rb'));
     $mock->addResponse(fopen(__DIR__ . '/responses/way_open.xml', 'rb'));
     $config = array('adapter' => $mock, 'server' => 'http://api06.dev.openstreetmap.org');
     $osm = new Services_OpenStreetMap($config);
     $way = $osm->getWay($id);
     $lat = 52.8638729;
     $lon = -8.1983611;
     $nodes = $way->getNodes();
     $node = $osm->createNode($lat, $lon);
     $way->addNode($node);
     $lat = $lat + 2.0E-5;
     $node = $osm->createNode($lat, $lon);
     $way->addNode($node);
     $this->assertEquals(sizeof($nodes) + 2, sizeof($way->getNodes()));
 }
 /**
  * Open a new changeset, create a node and save it by associating it with
  * that changeset and then committing.
  * The id of the node should change from -1 to a positive integer/double.
  *
  * @return void
  */
 public function testSaveNode()
 {
     if (!file_exists($this->credentialsFile)) {
         $this->markTestSkipped('Credentials file does not exist.');
     }
     $mock = new HTTP_Request2_Adapter_Mock();
     $mock->addResponse(fopen(__DIR__ . '/responses/capabilities.xml', 'rb'));
     $mock->addResponse(fopen(__DIR__ . '/responses/changeset_id', 'rb'));
     $mock->addResponse(fopen(__DIR__ . '/responses/diff_create_node.xml', 'rb'));
     $mock->addResponse(fopen(__DIR__ . '/responses/changeset_closed', 'rb'));
     $config = array('adapter' => $mock, 'server' => 'http://api06.dev.openstreetmap.org/', 'passwordfile' => $this->credentialsFile);
     $osm = new Services_OpenStreetMap($config);
     $lat = 52.8638729;
     $lon = -8.1983611;
     $node = $osm->createNode($lat, $lon, array('building' => 'yes', 'amenity' => 'vet'));
     $this->assertEquals($node->getTags(), array('building' => 'yes', 'amenity' => 'vet'));
     $this->assertEquals($lat, $node->getlat());
     $this->assertEquals($lon, $node->getlon());
     $node->setTag('amenity', 'veterinary')->setTag('name', 'O\'Kennedy');
     $this->assertEquals($node->getTags(), array('building' => 'yes', 'amenity' => 'veterinary', 'name' => 'O\'Kennedy'));
     $this->assertEquals(-1, $node->getId());
     $changeset = $osm->createChangeset();
     $changeset->begin("Add O'Kennedy vets in Nenagh");
     $changeset->add($node);
     $changeset->commit();
     $this->assertEquals($node->getId(), 1448499623);
 }
 /**
  * Test invalid longitude value in constructor
  *
  * @expectedException        InvalidArgumentException
  * @expectedExceptionMessage Longitude must be numeric
  *
  * @return void
  */
 public function testCreateNodeNonnumericLonInConstructor()
 {
     $mock = new HTTP_Request2_Adapter_Mock();
     $mock->addResponse(fopen(__DIR__ . '/responses/capabilities.xml', 'rb'));
     $config = array('adapter' => $mock, 'server' => 'http://api06.dev.openstreetmap.org/');
     $osm = new Services_OpenStreetMap($config);
     $lat = 52.8638729;
     $lon = 'TheBlessing';
     $node = $osm->createNode($lat, $lon);
 }