public function testSelectParsing() { $di = $this->_getDI(); // $di->get('db')->execute('select 1'); /* $robots = Robots::query()->forUpdate(true)->execute(); return; $robots = Robots::query() ->where("type = :type:") ->andWhere("year < 2000") ->sharedLock(true) ->bind(array("type" => "mechanical")) ->order("name") ->execute(); */ $personnes = Personnes::find(array("conditions" => "cedula >=:d1:", "bind" => array("d1" => '1'), "shared_lock" => true, "for_update" => true)); /* $builder = $di['modelsManager']->createBuilder() ->columns('cedula, nombres') ->from('Personnes') ->orderBy('cedula'); //->limit(500, 0); $paginator = new Phalcon\Paginator\Adapter\QueryBuilder(array( "builder" => $builder, "limit"=> 10, "page" => 2 )); $page = $paginator->getPaginate(); */ }
public function estIssue826() { $this->_loadDI(); $personnes = Personnes::find(); $paginator = new Phalcon\Paginator\Adapter\Model(array('data' => $personnes, 'limit' => 1, 'page' => 1)); $paginator->setCurrentPage(2179); $page = $paginator->getPaginate(); $this->assertEquals(count($page->items), 1); $this->assertEquals($page->before, 2178); $this->assertEquals($page->next, 2180); $this->assertEquals($page->last, 2180); $this->assertEquals($page->current, 2179); $this->assertEquals($page->total_pages, 2180); }
protected function _executeTestsNormal() { //Count calculations $rowcount = Personnes::count(); $this->assertEquals($rowcount, 2180); $rowcount = Personnes::count(array('distinct' => 'estado')); $this->assertEquals($rowcount, 2); $rowcount = Personnes::count("estado='A'"); $this->assertEquals($rowcount, 2178); $group = Personnes::count(array("group" => "estado")); $this->assertEquals(2, count($group)); $group = Personnes::count(array("group" => "estado", "order" => "estado")); $this->assertEquals(2, count($group)); $results = array('A' => 2178, 'I' => 2); foreach ($group as $row) { $this->assertEquals($results[$row->estado], $row->rowcount); } $this->assertEquals($group[0]->rowcount, 2178); $this->assertEquals($group[1]->rowcount, 2); $group = Personnes::count(array("group" => "estado")); $this->assertEquals(2, count($group)); $group = Personnes::count(array("group" => "ciudad_id")); $this->assertEquals(285, count($group)); $group = Personnes::count(array("group" => "ciudad_id", "order" => "rowcount DESC")); $this->assertEquals($group[0]->rowcount, 727); //Summatory $total = Personnes::sum(array("column" => "cupo")); $this->assertEquals(995066020.0, $total); $total = Personnes::sum(array("column" => "cupo", "conditions" => "estado='I'")); $this->assertEquals(567020.0, $total); $group = Personnes::sum(array("column" => "cupo", "group" => "estado")); $this->assertEquals(2, count($group)); $results = array('A' => 994499000.0, 'I' => 567020.0); foreach ($group as $row) { $this->assertEquals($results[$row->estado], $row->sumatory); } $group = Personnes::sum(array("column" => "cupo", "group" => "ciudad_id", "order" => "sumatory DESC")); $this->assertEquals($group[0]->sumatory, 358467690.0); //Average $total = Personnes::average(array("column" => "cupo")); $this->assertEquals(456452.3, sprintf("%.2f", $total)); $total = Personnes::average(array("column" => "cupo", "conditions" => "estado='I'")); $this->assertEquals(283510.0, $total); $group = Personnes::average(array("column" => "cupo", "group" => "estado")); $this->assertEquals(2, count($group)); $results = array('A' => 456611.11, 'I' => 283510.0); foreach ($group as $row) { $this->assertEquals($results[$row->estado], sprintf("%.2f", $row->average)); } $group = Personnes::average(array("column" => "cupo", "group" => "ciudad_id", "order" => "average DESC")); $this->assertEquals($group[0]->average, 996200.0); //Maximum $max = Personnes::maximum(array("column" => "ciudad_id")); $this->assertEquals($max, 302172); $max = Personnes::maximum(array("column" => "ciudad_id", "conditions" => "estado='I'")); $this->assertEquals($max, 127591); $group = Personnes::maximum(array("column" => "ciudad_id", "group" => "estado")); $this->assertEquals(2, count($group)); $results = array('A' => 302172, 'I' => 127591); foreach ($group as $row) { $this->assertEquals($results[$row->estado], $row->maximum); } $group = Personnes::maximum(array("column" => "ciudad_id", "group" => "estado", "order" => "maximum DESC")); $this->assertEquals($group[0]->maximum, 302172); //Minimum $max = Personnes::minimum(array("column" => "ciudad_id")); $this->assertEquals($max, 20404); $max = Personnes::minimum(array("column" => "ciudad_id", "conditions" => "estado='I'")); $this->assertEquals($max, 127591); $group = Personnes::minimum(array("column" => "ciudad_id", "group" => "estado")); $this->assertEquals(2, count($group)); $results = array('A' => 20404, 'I' => 127591); foreach ($group as $row) { $this->assertEquals($results[$row->estado], $row->minimum); } $group = Personnes::minimum(array("column" => "ciudad_id", "group" => "estado", "order" => "minimum DESC")); $this->assertEquals($group[0]->minimum, 127591); $group = Personnes::minimum(array("column" => "ciudad_id", "group" => "estado", "order" => "minimum ASC")); $this->assertEquals($group[0]->minimum, 20404); }
public function testModelPaginatorBind() { require 'unit-tests/config.db.php'; if (empty($configMysql)) { $this->markTestSkipped('Test skipped'); return; } $this->_loadDI(); $personnes = Personnes::find(array("conditions" => "cedula >=:d1: AND cedula>=:d2: ", "bind" => array("d1" => '1', "d2" => "5"), "order" => "cedula, nombres", "limit" => "33")); $paginator = new Phalcon\Paginator\Adapter\Model(array('data' => $personnes, 'limit' => 10, 'page' => 1)); //First Page $page = $paginator->getPaginate(); $this->assertEquals(get_class($page), 'stdClass'); $this->assertEquals(count($page->items), 10); $this->assertEquals($page->before, 1); $this->assertEquals($page->next, 2); $this->assertEquals($page->last, 4); $this->assertEquals($page->limit, 10); $this->assertEquals($page->current, 1); $this->assertEquals($page->total_pages, 4); }
public function testIssue2301() { require 'unit-tests/config.db.php'; if (empty($configMysql)) { $this->markTestSkipped('Test skipped'); return; } $this->_loadDI(); $personnes = Personnes::find(array('limit' => 11)); $paginator = new Phalcon\Paginator\Adapter\Model(array('data' => $personnes, 'limit' => 10, 'page' => 1)); //First Page $page = $paginator->getPaginate(); $this->assertEquals(get_class($page), 'stdClass'); $this->assertEquals(count($page->items), 10); $this->assertEquals($page->before, 1); $this->assertEquals($page->next, 2); $this->assertEquals($page->last, 2); $this->assertEquals($page->current, 1); $this->assertEquals($page->total_pages, 2); }