diff --git a/tests/database/Paginator/Adapter/Model/PaginateCest.php b/tests/database/Paginator/Adapter/Model/PaginateCest.php index 9f0c9a65146..b408ecd32a6 100644 --- a/tests/database/Paginator/Adapter/Model/PaginateCest.php +++ b/tests/database/Paginator/Adapter/Model/PaginateCest.php @@ -16,6 +16,7 @@ use DatabaseTester; use Phalcon\Paginator\Adapter\Model; use Phalcon\Paginator\Repository; +use Phalcon\Storage\Exception; use Phalcon\Test\Fixtures\Migrations\InvoicesMigration; use Phalcon\Test\Fixtures\Traits\DiTrait; use Phalcon\Test\Fixtures\Traits\RecordsTrait; @@ -45,6 +46,8 @@ public function _before(DatabaseTester $I) */ public function paginatorAdapterModelPaginate(DatabaseTester $I) { + $I->wantToTest('Paginator\Adapter\Model - paginate()'); + /** @var PDO $connection */ $connection = $I->getConnection(); $migration = new InvoicesMigration($connection); @@ -106,6 +109,8 @@ public function paginatorAdapterModelPaginate(DatabaseTester $I) */ public function paginatorAdapterModelPaginateBind(DatabaseTester $I) { + $I->wantToTest('Paginator\Adapter\Model - paginate() - bind'); + /** @var PDO $connection */ $connection = $I->getConnection(); $migration = new InvoicesMigration($connection); @@ -157,6 +162,8 @@ public function paginatorAdapterModelPaginateBind(DatabaseTester $I) */ public function paginatorAdapterModelPaginateParametersString(DatabaseTester $I): void { + $I->wantToTest('Paginator\Adapter\Model - paginate() - parameters string'); + /** @var PDO $connection */ $connection = $I->getConnection(); $migration = new InvoicesMigration($connection); @@ -197,6 +204,8 @@ public function paginatorAdapterModelPaginateParametersString(DatabaseTester $I) */ public function paginatorAdapterModelPaginateParametersArrayString(DatabaseTester $I): void { + $I->wantToTest('Paginator\Adapter\Model - paginate() - parameters array string'); + /** @var PDO $connection */ $connection = $I->getConnection(); $migration = new InvoicesMigration($connection); @@ -230,4 +239,59 @@ public function paginatorAdapterModelPaginateParametersArrayString(DatabaseTeste $I->assertEquals(5, $page->getLimit()); $I->assertEquals(1, $page->getCurrent()); } + + + /** + * Tests Phalcon\Paginator\Adapter\QueryBuilder :: paginate() + * + * @author Phalcon Team + * @since 2020-03-15 + * + * @param DatabaseTester $I + * @issue 14639 + * + * @group mysql + * + * @throws Exception + */ + public function paginatorAdapterModelPaginateView(DatabaseTester $I): void + { + $I->wantToTest('Paginator\Adapter\Model - paginate() - set in view'); + + $this->setDiService('view'); + + /** @var PDO $connection */ + $connection = $I->getConnection(); + $migration = new InvoicesMigration($connection); + $invId = ('sqlite' === $I->getDriver()) ? 'null' : 'default'; + + $this->insertDataInvoices($migration, 17, $invId, 2, 'ccc'); + $this->insertDataInvoices($migration, 11, $invId, 3, 'aaa'); + $this->insertDataInvoices($migration, 31, $invId, 1, 'aaa'); + $this->insertDataInvoices($migration, 15, $invId, 2, 'bbb'); + + $paginator = new Model( + [ + 'model' => Invoices::class, + 'limit' => 5, + 'page' => 1, + ] + ); + + $page = $paginator->paginate(); + $I->assertCount(5, $page->getItems()); + + $view = $this->getService('view'); + $view->setVar('page', $page); + + $actual = $view->getVar('page'); + $I->assertInstanceOf(Repository::class, $actual); + + + $view = $this->getService('view'); + $view->setVar('paginate', $paginator->paginate()); + + $actual = $view->getVar('paginate'); + $I->assertInstanceOf(Repository::class, $actual); + } }