From 875a0b6555815fec4a370f511672a3dc23c7c5e2 Mon Sep 17 00:00:00 2001 From: Ralph Schindler Date: Wed, 12 Jun 2013 13:27:40 -0500 Subject: [PATCH 1/3] Zend\Db & Zend\Paginator - Paginator: removed clearing of columns from select - Db\Sql\Select: when resettings columns, reset value should be array(self::SQL_STAR) --- src/Adapter/DbSelect.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Adapter/DbSelect.php b/src/Adapter/DbSelect.php index b6f6e82..c9ade72 100644 --- a/src/Adapter/DbSelect.php +++ b/src/Adapter/DbSelect.php @@ -103,7 +103,6 @@ public function count() } $select = clone $this->select; - $select->reset(Select::COLUMNS); $select->reset(Select::LIMIT); $select->reset(Select::OFFSET); $select->reset(Select::ORDER); From c3e15e070e0eeed349f21a39e00086a9049b7e64 Mon Sep 17 00:00:00 2001 From: Ralph Schindler Date: Wed, 12 Jun 2013 14:07:05 -0500 Subject: [PATCH 2/3] Zend\Paginator - added tests for DbSelect Zend\Db\Sql\Select - reverted reset on column --- test/Adapter/DbSelectTest.php | 38 +++++++++++++++++++++++------------ 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/test/Adapter/DbSelectTest.php b/test/Adapter/DbSelectTest.php index ac21f28..30002ef 100644 --- a/test/Adapter/DbSelectTest.php +++ b/test/Adapter/DbSelectTest.php @@ -25,14 +25,23 @@ class DbSelectTest extends \PHPUnit_Framework_TestCase /** @var \PHPUnit_Framework_MockObject_MockObject */ protected $mockSelect; + /** @var \PHPUnit_Framework_MockObject_MockObject */ + protected $mockStatement; + + /** @var \PHPUnit_Framework_MockObject_MockObject */ protected $mockResult; + /** @var \PHPUnit_Framework_MockObject_MockObject */ + protected $mockSql; + /** @var DbSelect */ protected $dbSelect; public function setup() { $mockStatement = $this->getMock('Zend\Db\Adapter\Driver\StatementInterface'); + $this->mockStatement = $mockStatement; + $mockResult = $this->getMock('Zend\Db\Adapter\Driver\ResultInterface'); $mockDriver = $this->getMock('Zend\Db\Adapter\Driver\DriverInterface'); @@ -45,9 +54,16 @@ public function setup() array($mockDriver, $mockPlatform) ); + $mockSql = $this->getMock( + 'Zend\Db\Sql\Sql', + array('prepareStatementForSqlObject', 'execute'), + array($mockAdapter) + ); + + $this->mockSql = $mockSql; $this->mockSelect = $this->getMock('Zend\Db\Sql\Select'); $this->mockResult = $mockResult; - $this->dbSelect = new DbSelect($this->mockSelect, $mockAdapter); + $this->dbSelect = new DbSelect($this->mockSelect, $mockSql); } public function testGetItems() @@ -60,18 +76,14 @@ public function testGetItems() public function testCount() { - $this->mockSelect->expects($this->once())->method('columns')->with($this->equalTo(array('c' => new Expression('COUNT(1)')))); - $this->mockResult->expects($this->any())->method('current')->will($this->returnValue(array('c' => 5))); - - $this->mockSelect->expects($this->exactly(6))->method('reset'); // called for columns, limit, offset, order - $this->mockSelect->expects($this->once())->method('getRawState')->with($this->equalTo(Select::JOINS)) - ->will($this->returnValue(array(array('name' => 'Foo', 'on' => 'On Stuff', 'columns' => array('foo', 'bar'), 'type' => Select::JOIN_INNER)))); - $this->mockSelect->expects($this->once())->method('join')->with( - 'Foo', - 'On Stuff', - array(), - Select::JOIN_INNER - ); + $this->mockSql->expects($this->once()) + ->method('prepareStatementForSqlObject') + ->with($this->isInstanceOf('Zend\Db\Sql\Select')) + ->will($this->returnValue($this->mockStatement)); + $this->mockSql->expects($this->any())->method('execute')->will($this->returnValue($this->mockResult)); + $this->mockResult->expects($this->once())->method('current')->will($this->returnValue(array('c' => 5))); + + $this->mockSelect->expects($this->exactly(3))->method('reset'); // called for columns, limit, offset, order $count = $this->dbSelect->count(); $this->assertEquals(5, $count); From baeb3adfadbc9e120eeb7b04e048a2d122a59c1b Mon Sep 17 00:00:00 2001 From: Ralph Schindler Date: Wed, 12 Jun 2013 14:20:11 -0500 Subject: [PATCH 3/3] Zend\Paginator - reorganized the Mock setup for getItems and count tests to work --- test/Adapter/DbSelectTest.php | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/test/Adapter/DbSelectTest.php b/test/Adapter/DbSelectTest.php index 30002ef..599cc29 100644 --- a/test/Adapter/DbSelectTest.php +++ b/test/Adapter/DbSelectTest.php @@ -39,14 +39,17 @@ class DbSelectTest extends \PHPUnit_Framework_TestCase public function setup() { + $mockResult = $this->getMock('Zend\Db\Adapter\Driver\ResultInterface'); + $this->mockResult = $mockResult; + $mockStatement = $this->getMock('Zend\Db\Adapter\Driver\StatementInterface'); $this->mockStatement = $mockStatement; - $mockResult = $this->getMock('Zend\Db\Adapter\Driver\ResultInterface'); + $this->mockStatement->expects($this->any())->method('execute')->will($this->returnValue($this->mockResult)); $mockDriver = $this->getMock('Zend\Db\Adapter\Driver\DriverInterface'); $mockDriver->expects($this->any())->method('createStatement')->will($this->returnValue($mockStatement)); - $mockStatement->expects($this->any())->method('execute')->will($this->returnValue($mockResult)); + $mockPlatform = $this->getMock('Zend\Db\Adapter\Platform\PlatformInterface'); $mockPlatform->expects($this->any())->method('getName')->will($this->returnValue('platform')); $mockAdapter = $this->getMockForAbstractClass( @@ -59,10 +62,15 @@ public function setup() array('prepareStatementForSqlObject', 'execute'), array($mockAdapter) ); - $this->mockSql = $mockSql; + $this->mockSql->expects($this->once()) + ->method('prepareStatementForSqlObject') + ->with($this->isInstanceOf('Zend\Db\Sql\Select')) + ->will($this->returnValue($this->mockStatement)); + + $this->mockSelect = $this->getMock('Zend\Db\Sql\Select'); - $this->mockResult = $mockResult; + $this->dbSelect = new DbSelect($this->mockSelect, $mockSql); } @@ -76,11 +84,6 @@ public function testGetItems() public function testCount() { - $this->mockSql->expects($this->once()) - ->method('prepareStatementForSqlObject') - ->with($this->isInstanceOf('Zend\Db\Sql\Select')) - ->will($this->returnValue($this->mockStatement)); - $this->mockSql->expects($this->any())->method('execute')->will($this->returnValue($this->mockResult)); $this->mockResult->expects($this->once())->method('current')->will($this->returnValue(array('c' => 5))); $this->mockSelect->expects($this->exactly(3))->method('reset'); // called for columns, limit, offset, order