コード例 #1
0
ファイル: HalTest.php プロジェクト: zfcampus/zf-hal
 /**
  * @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);
 }
コード例 #2
0
ファイル: HalTest.php プロジェクト: jbarentsen/drb
    /**
     * @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']);
    }