/**
  * Test retrieving just one relation.
  *
  * @return void
  */
 public function testGetRelation()
 {
     $id = 1152802;
     $mock = new HTTP_Request2_Adapter_Mock();
     $mock->addResponse(fopen(__DIR__ . '/responses/capabilities.xml', 'rb'));
     $mock->addResponse(fopen(__DIR__ . '/responses/relation.xml', 'rb'));
     $mock->addResponse(fopen(__DIR__ . '/responses/relation_changeset.xml', 'rb'));
     $config = array('adapter' => $mock, 'server' => 'http://api06.dev.openstreetmap.org/');
     $osm = new Services_OpenStreetMap($config);
     $relation = $osm->getRelation($id);
     $this->assertEquals($id, $relation->getId());
     $changesetId = (int) $relation->getAttributes()->changeset;
     $getTags = $relation->getTags();
     $this->assertEquals($getTags['name'], 'Mitchell Street');
     $this->assertEquals($getTags['type'], 'associatedStreet');
     $changeset = $osm->getChangeset($changesetId);
     $this->assertEquals($changesetId, $changeset->getId());
     $getTags = $changeset->getTags();
     $this->assertEquals($getTags['comment'], 'IE. Nenagh. Mitchell Street POIs');
     $members = $relation->getMembers();
     $this->assertEquals(18, sizeof($members));
     foreach ($members as $member) {
         $this->assertEquals('house', $member['role']);
         $this->assertEquals('way', $member['type']);
         $this->assertTrue(is_numeric($member['ref']));
     }
 }
<?php

/**
 * example4_getchangeset.php
 * 22-Nov-2009
 *
 * PHP Version 5
 *
 * @category Services
 * @package  Services_OpenStreetMap
 * @author   Ken Guest <*****@*****.**>
 * @license  BSD http://www.opensource.org/licenses/bsd-license.php
 * @version  Release: @package_version@
 * @link     osmx.php
*/
$version = '@package_version@';
if (strstr($version, 'package_version')) {
    set_include_path(dirname(dirname(__FILE__)) . ':' . get_include_path());
}
require_once 'Services/OpenStreetMap.php';
$osm = new Services_OpenStreetMap();
try {
    var_dump($osm->getChangeset(2217466));
} catch (Services_OpenStreetMap_Exception $e) {
    var_dump($e);
}
// vim:set et ts=4 sw=4: