Пример #1
0
 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();
     */
 }
Пример #2
0
 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);
 }
Пример #3
0
 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);
 }
Пример #4
0
 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);
 }
Пример #5
0
 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);
 }