From bc51c1d7a08427f891350feb854ee8a0282c96c1 Mon Sep 17 00:00:00 2001 From: Renato Moura Date: Fri, 22 Feb 2013 23:48:41 -0300 Subject: [PATCH] Created an adapter Zend Paginator instance using TableGateway Isseus: #3802 --- .../Zend/Paginator/Adapter/DbTableGateway.php | 35 ++++++++ .../Paginator/Adapter/DbTableGatewayTest.php | 83 +++++++++++++++++++ 2 files changed, 118 insertions(+) create mode 100644 library/Zend/Paginator/Adapter/DbTableGateway.php create mode 100644 tests/ZendTest/Paginator/Adapter/DbTableGatewayTest.php diff --git a/library/Zend/Paginator/Adapter/DbTableGateway.php b/library/Zend/Paginator/Adapter/DbTableGateway.php new file mode 100644 index 00000000000..ea764fe422e --- /dev/null +++ b/library/Zend/Paginator/Adapter/DbTableGateway.php @@ -0,0 +1,35 @@ +getSql()->select($where); + $dbAdapter = $tableGateway->getAdapter(); + $resultSetPrototype = $tableGateway->getResultSetPrototype(); + + parent::__construct($select, $dbAdapter, $resultSetPrototype); + } +} diff --git a/tests/ZendTest/Paginator/Adapter/DbTableGatewayTest.php b/tests/ZendTest/Paginator/Adapter/DbTableGatewayTest.php new file mode 100644 index 00000000000..42d9c91dd13 --- /dev/null +++ b/tests/ZendTest/Paginator/Adapter/DbTableGatewayTest.php @@ -0,0 +1,83 @@ +getMock('Zend\Db\Adapter\Driver\StatementInterface'); + $mockDriver = $this->getMock('Zend\Db\Adapter\Driver\DriverInterface'); + $mockDriver->expects($this->any()) + ->method('createStatement') + ->will($this->returnValue($mockStatement)); + $mockPlatform = $this->getMock('Zend\Db\Adapter\Platform\PlatformInterface'); + $mockPlatform->expects($this->any()) + ->method('getName') + ->will($this->returnValue('platform')); + $mockAdapter = $this->getMockForAbstractClass( + 'Zend\Db\Adapter\Adapter', + array($mockDriver, $mockPlatform) + ); + + $tableName = 'foobar'; + $mockTableGateway = $this->getMockForAbstractClass( + 'Zend\Db\TableGateway\TableGateway', + array($tableName, $mockAdapter) + ); + + $this->mockStatement = $mockStatement; + $this->dbTableGateway = new DbTableGateway($mockTableGateway); + } + + public function testGetItems() + { + $mockResult = $this->getMock('Zend\Db\Adapter\Driver\ResultInterface'); + $this->mockStatement + ->expects($this->any()) + ->method('execute') + ->will($this->returnValue($mockResult)); + + $items = $this->dbTableGateway->getItems(2, 10); + $this->assertInstanceOf('Zend\Db\ResultSet\ResultSet', $items); + } + + public function testCount() + { + $mockResult = $this->getMock('Zend\Db\Adapter\Driver\ResultInterface'); + $mockResult->expects($this->any()) + ->method('current') + ->will($this->returnValue(array('c' => 10))); + + $this->mockStatement->expects($this->any()) + ->method('execute') + ->will($this->returnValue($mockResult)); + + $count = $this->dbTableGateway->count(); + $this->assertEquals(10, $count); + } +}