Skip to content

Commit

Permalink
Add test for paginator rendering
Browse files Browse the repository at this point in the history
  • Loading branch information
bakura10 committed Mar 16, 2014
1 parent c37feaf commit 7b678b5
Showing 1 changed file with 50 additions and 0 deletions.
50 changes: 50 additions & 0 deletions tests/ZfrRestTest/View/Renderer/DefaultResourceRendererTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@

namespace ZfrRestTest\View\Renderer;

use Zend\Paginator\Adapter\ArrayAdapter;
use Zend\Paginator\Paginator;
use Zend\Stdlib\Hydrator\HydratorPluginManager;
use ZfrRest\Resource\Metadata\ResourceMetadataFactory;
use ZfrRest\Resource\Resource;
Expand Down Expand Up @@ -290,4 +292,52 @@ public function testCanRenderCollectionResourceWithAssociationAsEmbed()

$this->assertEquals($expectedPayload, $payload);
}

public function testCanRenderCollectionResourceAsPaginator()
{
$address1 = new Address();
$address2 = new Address();

$user1 = new User();
$user1->setId(2);
$user1->setUsername('bakura');
$user1->setAddress($address1);

$user2 = new User();
$user2->setId(3);
$user2->setUsername('ocramius');
$user2->setAddress($address2);

$metadata = $this->resourceMetadataFactory->getMetadataForClass(
'ZfrRestTest\Asset\Resource\Metadata\Annotation\User'
);

// In this test, we enforce that association extraction is set to NONE
$metadata->propertyMetadata['associations']['address']['extraction'] = 'NONE';

$paginator = new Paginator(new ArrayAdapter([$user1, $user2]));

$resourceModel = new ResourceModel(new Resource($paginator, $metadata));
$payload = $this->resourceRenderer->render($resourceModel);

$expectedPayload = [
'items' => [
[
'id' => 2,
'username' => 'bakura'
],
[
'id' => 3,
'username' => 'ocramius'
]
],
'meta' => [
'limit' => 10,
'offset' => 0,
'total' => 2
]
];

$this->assertEquals($expectedPayload, $payload);
}
}

0 comments on commit 7b678b5

Please sign in to comment.