Exemplo n.º 1
0
 public function testIsCompleteReturnsTrueWhenUrlIsSet()
 {
     $link = new Link('describedby');
     $link->setUrl('http://example.com/api/docs.html');
     $this->assertTrue($link->isComplete());
 }
Exemplo n.º 2
0
 /**
  * @group 71
  */
 public function testRenderingCollectionRendersAllLinksInEmbeddedResources()
 {
     $embedded = new HalResource((object) array('id' => 'foo', 'name' => 'foo'), 'foo');
     $links = $embedded->getLinks();
     $self = new Link('self');
     $self->setRoute('hostname/users', array('id' => 'foo'));
     $links->add($self);
     $phones = new Link('phones');
     $phones->setUrl('http://localhost.localdomain/users/foo/phones');
     $links->add($phones);
     $collection = new HalCollection(array($embedded));
     $collection->setCollectionName('users');
     $self = new Link('self');
     $self->setRoute('hostname/users');
     $collection->getLinks()->add($self);
     $rendered = $this->plugin->renderCollection($collection);
     $this->assertRelationalLinkContains('/users', 'self', $rendered);
     $this->assertArrayHasKey('_embedded', $rendered);
     $this->assertInternalType('array', $rendered['_embedded']);
     $this->assertArrayHasKey('users', $rendered['_embedded']);
     $users = $rendered['_embedded']['users'];
     $this->assertInternalType('array', $users);
     $user = array_shift($users);
     $this->assertRelationalLinkContains('/users/foo', 'self', $user);
     $this->assertRelationalLinkContains('/users/foo/phones', 'phones', $user);
 }
Exemplo n.º 3
0
 /**
  * Creates a link object, given metadata and a resource
  *
  * @param  Metadata $metadata
  * @param  object $object
  * @param  string $id
  * @param  string $identifierName
  * @return Link
  * @throws Exception\RuntimeException
  */
 protected function marshalSelfLinkFromMetadata(Metadata $metadata, $object, $id, $identifierName)
 {
     $link = new Link('self');
     if ($metadata->hasUrl()) {
         $link->setUrl($metadata->getUrl());
         return $link;
     }
     if (!$metadata->hasRoute()) {
         throw new Exception\RuntimeException(sprintf('Unable to create a self link for resource of type "%s"; metadata does not contain a route or a url', get_class($object)));
     }
     $params = array_merge($metadata->getRouteParams(), array($identifierName => $id));
     $link->setRoute($metadata->getRoute(), $params, $metadata->getRouteOptions());
     return $link;
 }