/** * @group 100 */ public function testRenderEntityPostEventIsTriggered() { $entity = ['id' => 1, 'foo' => 'bar']; $halEntity = new Entity($entity, 1); $triggered = false; $this->plugin->getEventManager()->attach('renderEntity.post', function ($e) use(&$triggered) { $triggered = true; }); $this->plugin->renderEntity($halEntity); $this->assertTrue($triggered); }
/** * @group 79 */ public function testRenderCollectionTriggersEvents() { $collection = new Collection( array( (object) array('id' => 'foo', 'name' => 'foo'), (object) array('id' => 'bar', 'name' => 'bar'), (object) array('id' => 'baz', 'name' => 'baz'), ), 'hostname/contacts' ); $self = new Link('self'); $self->setRoute('hostname/contacts'); $collection->getLinks()->add($self); $collection->setCollectionName('resources'); $this->plugin->getEventManager()->attach('renderCollection', function ($e) { $collection = $e->getParam('collection'); $collection->setAttributes(array('injected' => true)); }); $rendered = $this->plugin->renderCollection($collection); $this->assertArrayHasKey('injected', $rendered); $this->assertTrue($rendered['injected']); $that = $this; $this->plugin->getEventManager()->attach('renderCollection.post', function ($e) use ($that) { $collection = $e->getParam('collection'); $payload = $e->getParam('payload'); $that->assertInstanceOf('ArrayObject', $payload); $that->assertInstanceOf('ZF\Hal\Collection', $collection); $payload['_post'] = true; }); $rendered = $this->plugin->renderCollection($collection); $this->assertArrayHasKey('_post', $rendered); $this->assertTrue($rendered['_post']); }