protected function _executeTestsNormal($di)
 {
     $robot = new Robots();
     $success = $robot->save(array('type' => 'mechanical', 'year' => 2018));
     $this->assertEquals($success, false);
     $this->assertEquals($robot->type, 'mechanical');
     $this->assertEquals($robot->year, 2018);
     $robot = new Robots();
     $robot->assign(array('type' => 'mechanical', 'year' => 2018));
     $this->assertEquals($robot->type, 'mechanical');
     $this->assertEquals($robot->year, 2018);
     //not assigns nonexistent fields
     $robot = new Robots();
     $robot->assign(array('field1' => 'mechanical', 'field2' => 2018));
     $this->assertEquals(empty($robot->field1), true);
     $this->assertEquals(empty($robot->field2), true);
     //white list
     $robot = new Robots();
     $robot->assign(array('type' => 'mechanical', 'year' => 2018), null, array('type'));
     $this->assertEquals($robot->type, 'mechanical');
     $this->assertEquals(empty($robot->year), true);
     //white list
     $robot = new Robots();
     $robot->assign(array('typeFromClient' => 'mechanical', 'yearFromClient' => 2018), array('typeFromClient' => 'type', 'yearFromClient' => 'year'), array('type'));
     $this->assertEquals($robot->type, 'mechanical');
     $this->assertEquals(empty($robot->year), true);
 }
Пример #2
0
 public static function findByRawSql($conditions, $params = null)
 {
     // A raw SQL statement
     $sql = "SELECT * FROM robots WHERE {$conditions}";
     // Base model
     $robot = new Robots();
     // Execute the query
     return new Resultset(null, $robot, $robot->getReadConnection()->query($sql, $params));
 }
Пример #3
0
 public static function findByCreateInterval()
 {
     // A raw SQL statement
     $sql = "SELECT * FROM robots WHERE id > 0";
     // Base model
     $robot = new Robots();
     // Execute the query
     return new Resultset(null, $robot, $robot->getReadConnection()->query($sql));
 }
Пример #4
0
 /**
  * @covers itseo\test\Robots::test
  * @todo   Implement testTest().
  */
 public function testTest()
 {
     $dummy_target = "http://www.google.es/";
     $result = $this->object->test($dummy_target);
     $this->assertArrayHasKey("name", $result);
     $this->assertArrayHasKey("score", $result);
     $this->assertArrayHasKey("total_score", $result);
     $this->assertArrayHasKey("result", $result);
     $this->assertEquals("robots", $result['name']);
 }
Пример #5
0
 protected function _executeTestsNormal($di)
 {
     $robot = new Robots();
     $success = $robot->save(array('type' => 'mechanical', 'year' => 2018));
     $this->assertEquals($success, false);
     $this->assertEquals($robot->type, 'mechanical');
     $this->assertEquals($robot->year, 2018);
     $robot = new Robots();
     $robot->assign(array('type' => 'mechanical', 'year' => 2018));
     $this->assertEquals($robot->type, 'mechanical');
     $this->assertEquals($robot->year, 2018);
 }
 public static function create($data)
 {
     $response = new Response();
     try {
         $data = json_decode($data, true);
         /** @var Robots $robot */
         $robot = new Robots();
         $robot->setAttributes($data);
         $response->data = $robot->create();
         $response->status = $response::STATUS_CREATED;
     } catch (Exception $e) {
         $response->setException($e);
     } finally {
         return $response->toArray();
     }
 }
Пример #7
0
 public function testSerialize()
 {
     $this->_prepareDI();
     $robot = Robots::findFirst();
     $serialized = serialize($robot);
     $robot = unserialize($serialized);
     $this->assertTrue($robot->save());
 }
Пример #8
0
 public function findAction()
 {
     $robots = $this->demoModel->find(array("conditions" => "id >= :id:", "columns" => "id, username,password", "order" => "username DESC", "offset" => 0, "limit" => 10, "group" => "id, username", "bind" => array("id" => 1)));
     dump($robots->toArray());
     exit;
     // 也可以这样
     $robots = Robots::query()->where("type = :type:")->andWhere("year < 2000")->bind(array("type" => "mechanical"))->order("name")->execute();
     // 单条记录
     $data = $this->demoModel->findFirst();
 }
Пример #9
0
 public function saveAction()
 {
     $this->db->begin();
     $robot = new Robots();
     $robot->name = "WALL·E";
     $robot->created_at = date("Y-m-d");
     if ($robot->save() == false) {
         $this->db->rollback();
         return;
     }
     $robotPart = new RobotParts();
     $robotPart->robots_id = $robot->id;
     $robotPart->type = "head";
     if ($robotPart->save() == false) {
         $this->db->rollback();
         return;
     }
     $this->db->commit();
 }
Пример #10
0
 public function testCacheResultsetBinding()
 {
     $cache = $this->_getCache();
     $initialId = 0;
     $finalId = 4;
     $cache->save('test-resultset', Robots::find(array('conditions' => 'id > :id1: and id < :id2:', 'bind' => array('id1' => $initialId, 'id2' => $finalId), 'order' => 'id')));
     $this->assertTrue(file_exists(__DIR__ . '/cache/test-resultset'));
     $robots = $cache->get('test-resultset');
     $this->assertEquals(get_class($robots), 'Phalcon\\Mvc\\Model\\Resultset\\Simple');
     $this->assertEquals(count($robots), 3);
     $this->assertEquals($robots->count(), 3);
 }
Пример #11
0
 /**
  * Tests an image tag with a bare minimum of information passed
  *
  * @author Nikos Dimopoulos <*****@*****.**>
  * @since  2012-09-09
  */
 public function testSelectBasic()
 {
     // Populate the table
     // Empty the relationship table first
     $this->emptyTable('robots_parts');
     $this->populateTable('robots');
     $this->populateTable('robots_parts');
     $robots = \Robots::find();
     $params = array('some_name', $robots, 'using' => array('id', 'name'));
     $expected = '<select id="some_name" name="some_name">' . PHP_EOL . chr(9) . '<option value="1">Robotina</option>' . PHP_EOL . chr(9) . '<option value="2">Astro Boy</option>' . PHP_EOL . chr(9) . '<option value="3">Terminator</option>' . PHP_EOL . '</select>';
     $actual = PhTag::select($params);
     $this->assertEquals($expected, $actual, sprintf($this->message, 'select basic'));
 }
Пример #12
0
 public function testSerialize()
 {
     require 'unit-tests/config.db.php';
     if (empty($configMysql)) {
         $this->markTestSkipped('Test skipped');
         return;
     }
     $this->_prepareDI();
     $robot = Robots::findFirst();
     $serialized = serialize($robot);
     $robot = unserialize($serialized);
     $this->assertTrue($robot->save());
 }
Пример #13
0
 protected function _executeTestsNormal($di)
 {
     $robot = Robots::findFirstById(1);
     $this->assertEquals(get_class($robot), 'Robots');
     $this->assertEquals($robot->id, 1);
     $robot = Robots::findFirstById(2);
     $this->assertEquals(get_class($robot), 'Robots');
     $this->assertEquals($robot->id, 2);
     $robots = Robots::findByType('mechanical');
     $this->assertEquals(count($robots), 2);
     $this->assertEquals($robots[0]->id, 1);
     $number = Robots::countByType('mechanical');
     $this->assertEquals($number, 2);
 }
Пример #14
0
 public function testCacheResultsetNormal()
 {
     require 'unit-tests/config.db.php';
     if (empty($configMysql)) {
         $this->markTestSkipped('Test skipped');
         return;
     }
     $cache = $this->_getCache();
     $cache->save('test-resultset', Robots::find(array('order' => 'id')));
     $this->assertTrue(file_exists('unit-tests/cache/test-resultset'));
     $robots = $cache->get('test-resultset');
     $this->assertEquals(get_class($robots), 'Phalcon\\Mvc\\Model\\Resultset\\Simple');
     $this->assertEquals(count($robots), 3);
     $this->assertEquals($robots->count(), 3);
 }
Пример #15
0
 /**
  * Getting crowler
  * @param string $url
  * @return boolean|\Crowler
  */
 public static function getAnalyzer($url)
 {
     // Check is robots allowed
     if (!Robots::robots_allowed($url, Config::$agent_name)) {
         Providers::change_url_status($url, Providers::URLS_TYPE_ROBOTS_NOT_ALLOWED);
         _w('Robots not allowed');
         return false;
     }
     // Create object
     $obj = new ContentAnalyzer($url);
     if (!$obj->getCONTENT_DATA()) {
         Providers::change_url_status($url, Providers::URLS_TYPE_ERROR_NO_DATA);
         return false;
     }
     return $obj;
 }
Пример #16
0
 public function testJsonSerialize()
 {
     require 'unit-tests/config.db.php';
     if (empty($configMysql)) {
         $this->markTestSkipped('Test skipped');
         return;
     }
     $di = $this->_getDI();
     // Single model object json serialization
     $robot = Robots::findFirst();
     $json = json_encode($robot);
     $this->assertTrue(is_string($json));
     $this->assertTrue(strlen($json) > 10);
     // make sure result is not "{ }"
     $array = json_decode($json, true);
     $this->assertEquals($robot->toArray(), $array);
     // Result-set serialization
     $robots = Robots::find();
     $json = json_encode($robots);
     $this->assertTrue(is_string($json));
     $this->assertTrue(strlen($json) > 50);
     // make sure result is not "{ }"
     $array = json_decode($json, true);
     $this->assertEquals($robots->toArray(), $array);
     // Single row serialization
     $result = $di->get('modelsManager')->executeQuery('SELECT id FROM Robots LIMIT 1');
     $this->assertEquals(get_class($result), 'Phalcon\\Mvc\\Model\\Resultset\\Simple');
     foreach ($result as $row) {
         $this->assertEquals(get_class($row), 'Phalcon\\Mvc\\Model\\Row');
         $this->assertEquals($row->id, $robot->id);
         $json = json_encode($row);
         $this->assertTrue(is_string($json));
         $this->assertTrue(strlen($json) > 5);
         // make sure result is not "{ }"
         $array = json_decode($json, true);
         $this->assertEquals($row->toArray(), $array);
     }
 }
Пример #17
0
 protected function _executeTestsNormal($di)
 {
     $this->_prepareDb($di->getShared('db'));
     //Count tests
     $this->assertEquals(People::count(), Personas::count());
     $params = array();
     $this->assertEquals(People::count($params), Personas::count($params));
     $params = array("estado='I'");
     $this->assertEquals(People::count($params), Personas::count($params));
     $params = "estado='I'";
     $this->assertEquals(People::count($params), Personas::count($params));
     $params = array("conditions" => "estado='I'");
     $this->assertEquals(People::count($params), Personas::count($params));
     //Find first
     $people = People::findFirst();
     $this->assertTrue(is_object($people));
     $this->assertEquals(get_class($people), 'People');
     $persona = Personas::findFirst();
     $this->assertEquals($people->nombres, $persona->nombres);
     $this->assertEquals($people->estado, $persona->estado);
     $people = People::findFirst("estado='I'");
     $this->assertTrue(is_object($people));
     $persona = Personas::findFirst("estado='I'");
     $this->assertTrue(is_object($persona));
     $this->assertEquals($people->nombres, $persona->nombres);
     $this->assertEquals($people->estado, $persona->estado);
     $people = People::findFirst(array("estado='I'"));
     $persona = Personas::findFirst(array("estado='I'"));
     $this->assertEquals($people->nombres, $persona->nombres);
     $this->assertEquals($people->estado, $persona->estado);
     $params = array("conditions" => "estado='I'");
     $people = People::findFirst($params);
     $persona = Personas::findFirst($params);
     $this->assertEquals($people->nombres, $persona->nombres);
     $this->assertEquals($people->estado, $persona->estado);
     $params = array("conditions" => "estado='A'", "order" => "nombres");
     $people = People::findFirst($params);
     $persona = Personas::findFirst($params);
     $this->assertEquals($people->nombres, $persona->nombres);
     $this->assertEquals($people->estado, $persona->estado);
     $params = array("estado='A'", "order" => "nombres DESC", "limit" => 30);
     $people = People::findFirst($params);
     $persona = Personas::findFirst($params);
     $this->assertEquals($people->nombres, $persona->nombres);
     $this->assertEquals($people->estado, $persona->estado);
     $params = array("estado=?1", "bind" => array(1 => 'A'), "order" => "nombres DESC", "limit" => 30);
     $people = People::findFirst($params);
     $persona = Personas::findFirst($params);
     $this->assertEquals($people->nombres, $persona->nombres);
     $this->assertEquals($people->estado, $persona->estado);
     $params = array("estado=:estado:", "bind" => array("estado" => 'A'), "order" => "nombres DESC", "limit" => 30);
     $people = People::findFirst($params);
     $persona = Personas::findFirst($params);
     $this->assertEquals($people->nombres, $persona->nombres);
     $this->assertEquals($people->estado, $persona->estado);
     $robot = Robots::findFirst(1);
     $this->assertEquals(get_class($robot), 'Robots');
     //Find tests
     $personas = Personas::find();
     $people = People::find();
     $this->assertEquals(count($personas), count($people));
     $personas = Personas::find("estado='I'");
     $people = People::find("estado='I'");
     $this->assertEquals(count($personas), count($people));
     $personas = Personas::find(array("estado='I'"));
     $people = People::find(array("estado='I'"));
     $this->assertEquals(count($personas), count($people));
     $personas = Personas::find(array("estado='A'", "order" => "nombres"));
     $people = People::find(array("estado='A'", "order" => "nombres"));
     $this->assertEquals(count($personas), count($people));
     $personas = Personas::find(array("estado='A'", "order" => "nombres", "limit" => 100));
     $people = People::find(array("estado='A'", "order" => "nombres", "limit" => 100));
     $this->assertEquals(count($personas), count($people));
     $params = array("estado=?1", "bind" => array(1 => "A"), "order" => "nombres", "limit" => 100);
     $personas = Personas::find($params);
     $people = People::find($params);
     $this->assertEquals(count($personas), count($people));
     $params = array("estado=:estado:", "bind" => array("estado" => "A"), "order" => "nombres", "limit" => 100);
     $personas = Personas::find($params);
     $people = People::find($params);
     $this->assertEquals(count($personas), count($people));
     $number = 0;
     $peoples = Personas::find(array("conditions" => "estado='A'", "order" => "nombres", "limit" => 20));
     foreach ($peoples as $people) {
         $number++;
     }
     $this->assertEquals($number, 20);
     $persona = new Personas($di);
     $persona->cedula = 'CELL' . mt_rand(0, 999999);
     $this->assertFalse($persona->save());
     //Messages
     $this->assertEquals(count($persona->getMessages()), 4);
     $messages = array(0 => ModelMessage::__set_state(array('_type' => 'PresenceOf', '_message' => 'tipo_documento_id is required', '_field' => 'tipo_documento_id')), 1 => ModelMessage::__set_state(array('_type' => 'PresenceOf', '_message' => 'nombres is required', '_field' => 'nombres')), 2 => ModelMessage::__set_state(array('_type' => 'PresenceOf', '_message' => 'cupo is required', '_field' => 'cupo')), 3 => ModelMessage::__set_state(array('_type' => 'PresenceOf', '_message' => 'estado is required', '_field' => 'estado')));
     $this->assertEquals($persona->getMessages(), $messages);
     //Save
     $persona = new Personas($di);
     $persona->cedula = 'CELL' . mt_rand(0, 999999);
     $persona->tipo_documento_id = 1;
     $persona->nombres = 'LOST';
     $persona->telefono = '1';
     $persona->cupo = 20000;
     $persona->estado = 'A';
     $this->assertTrue($persona->save());
     $persona = new Personas($di);
     $persona->cedula = 'CELL' . mt_rand(0, 999999);
     $persona->tipo_documento_id = 1;
     $persona->nombres = 'LOST LOST';
     $persona->telefono = '2';
     $persona->cupo = 0;
     $persona->estado = 'X';
     $this->assertTrue($persona->save());
     //Check correct save
     $persona = Personas::findFirst(array("estado='X'"));
     $this->assertNotEquals($persona, false);
     $this->assertEquals($persona->nombres, 'LOST LOST');
     $this->assertEquals($persona->estado, 'X');
     //Update
     $persona->cupo = 150000;
     $persona->telefono = '123';
     $this->assertTrue($persona->update());
     //Checking correct update
     $persona = Personas::findFirst(array("estado='X'"));
     $this->assertNotEquals($persona, false);
     $this->assertEquals($persona->cupo, 150000);
     $this->assertEquals($persona->telefono, '123');
     //Update
     $this->assertTrue($persona->update(array('nombres' => 'LOST UPDATE', 'telefono' => '2121')));
     //Checking correct update
     $persona = Personas::findFirst(array("estado='X'"));
     $this->assertNotEquals($persona, false);
     $this->assertEquals($persona->nombres, 'LOST UPDATE');
     $this->assertEquals($persona->telefono, '2121');
     //Create
     $persona = new Personas($di);
     $persona->cedula = 'CELL' . mt_rand(0, 999999);
     $persona->tipo_documento_id = 1;
     $persona->nombres = 'LOST CREATE';
     $persona->telefono = '1';
     $persona->cupo = 21000;
     $persona->estado = 'A';
     $this->assertTrue($persona->create());
     $persona = new Personas($di);
     $this->assertTrue($persona->create(array('cedula' => 'CELL' . mt_rand(0, 999999), 'tipo_documento_id' => 1, 'nombres' => 'LOST CREATE', 'telefono' => '1', 'cupo' => 21000, 'estado' => 'A')));
     //Grouping
     $difEstados = People::count(array("distinct" => "estado"));
     $this->assertEquals($difEstados, 3);
     $group = People::count(array("group" => "estado"));
     $this->assertEquals(count($group), 3);
     //Deleting
     $before = People::count();
     $this->assertTrue($persona->delete());
     $this->assertEquals($before - 1, People::count());
     //Assign
     $persona = new Personas();
     $persona->assign(array('tipo_documento_id' => 1, 'nombres' => 'LOST CREATE', 'telefono' => '1', 'cupo' => 21000, 'estado' => 'A', 'notField' => 'SOME VALUE'));
     $expected = array('cedula' => NULL, 'tipo_documento_id' => 1, 'nombres' => 'LOST CREATE', 'telefono' => '1', 'direccion' => NULL, 'email' => NULL, 'fecha_nacimiento' => NULL, 'ciudad_id' => NULL, 'creado_at' => NULL, 'cupo' => 21000, 'estado' => 'A');
     $this->assertEquals($persona->toArray(), $expected);
     //Refresh
     $persona = Personas::findFirst();
     $personaData = $persona->toArray();
     $persona->assign(array('tipo_documento_id' => 1, 'nombres' => 'LOST CREATE', 'telefono' => '1', 'cupo' => 21000, 'estado' => 'A', 'notField' => 'SOME VALUE'));
     $persona->refresh();
     $this->assertEquals($personaData, $persona->toArray());
     // Issue 1314
     $parts = new Parts2();
     $parts->save();
 }
Пример #18
0
<?php

$robotPart = new RobotParts();
$robotPart->type = "head";
$robot = new Robots();
$robot->name = "WALL·E";
$robot->created_at = date("Y-m-d");
$robot->robotPart = $robotPart;
$robot->save();
//Creates an implicit transaction to store both records
 public function testMetadataFiles()
 {
     $di = $this->_getDI();
     $di->set('modelsMetadata', function () {
         return new Phalcon\Mvc\Model\Metadata\Files(array('metaDataDir' => 'unit-tests/cache/'));
     });
     @unlink('unit-tests/cache/meta-robots-robots.php');
     @unlink('unit-tests/cache/map-robots.php');
     $metaData = $di->getShared('modelsMetadata');
     $metaData->reset();
     $this->assertTrue($metaData->isEmpty());
     Robots::findFirst();
     $this->assertEquals(require 'unit-tests/cache/meta-robots-robots.php', $this->_data['meta-robots-robots']);
     $this->assertEquals(require 'unit-tests/cache/map-robots.php', $this->_data['map-robots']);
     $this->assertFalse($metaData->isEmpty());
     Robots::findFirst();
 }
Пример #20
0
 protected function _executeTestsNormal($di)
 {
     $number = 0;
     $robots = Robots::find();
     foreach ($robots as $robot) {
         $this->assertTrue(is_object($robot));
         $this->assertEquals(get_class($robot), 'Robots');
         $number++;
     }
     $robots->setHydrateMode(Phalcon\Mvc\Model\Resultset::HYDRATE_RECORDS);
     foreach ($robots as $robot) {
         $this->assertTrue(is_object($robot));
         $this->assertEquals(get_class($robot), 'Robots');
         $number++;
     }
     $robots->setHydrateMode(Phalcon\Mvc\Model\Resultset::HYDRATE_ARRAYS);
     foreach ($robots as $robot) {
         $this->assertTrue(is_array($robot));
         $this->assertEquals(count($robot), 4);
         $number++;
     }
     $robots->setHydrateMode(Phalcon\Mvc\Model\Resultset::HYDRATE_OBJECTS);
     foreach ($robots as $robot) {
         $this->assertTrue(is_object($robot));
         $this->assertEquals(get_class($robot), 'stdClass');
         $number++;
     }
     $this->assertEquals($number, 12);
     $number = 0;
     $people = People::find(array('limit' => 33));
     foreach ($people as $person) {
         $this->assertTrue(is_object($person));
         $this->assertEquals(get_class($person), 'People');
         $number++;
     }
     $people->setHydrateMode(Phalcon\Mvc\Model\Resultset::HYDRATE_RECORDS);
     foreach ($people as $person) {
         $this->assertTrue(is_object($person));
         $this->assertEquals(get_class($person), 'People');
         $number++;
     }
     $people->setHydrateMode(Phalcon\Mvc\Model\Resultset::HYDRATE_ARRAYS);
     foreach ($people as $person) {
         $this->assertTrue(is_array($person));
         $number++;
     }
     $people->setHydrateMode(Phalcon\Mvc\Model\Resultset::HYDRATE_OBJECTS);
     foreach ($people as $person) {
         $this->assertTrue(is_object($person));
         $this->assertEquals(get_class($person), 'stdClass');
         $number++;
     }
     $this->assertEquals($number, 33 * 4);
 }
Пример #21
0
 public function testMetadataRedis()
 {
     require __DIR__ . '/config.db.php';
     if (empty($configMysql)) {
         $this->markTestSkipped('Test skipped');
         return;
     }
     if (!extension_loaded('redis')) {
         $this->markTestSkipped('Warning: redis extension is not loaded');
         return;
     }
     $di = $this->_getDI();
     $di->set('modelsMetadata', function () {
         return new Phalcon\Mvc\Model\Metadata\Redis(array("host" => "localhost", "port" => "6379"));
     });
     $metaData = $di->getShared('modelsMetadata');
     $metaData->reset();
     $this->assertTrue($metaData->isEmpty());
     Robots::findFirst();
     $this->assertEquals($metaData->read("meta-robots-robots"), $this->_data['meta-robots-robots']);
     $this->assertEquals($metaData->read("map-robots"), $this->_data['map-robots']);
     $this->assertFalse($metaData->isEmpty());
     $metaData->reset();
     $this->assertTrue($metaData->isEmpty());
     Robots::findFirst();
 }
Пример #22
0
<?php

use Phalcon\Mvc\Model\Resultset;
$robots = Robots::find(array('hydration' => Resultset::HYDRATE_ARRAYS));
foreach ($robots as $robot) {
    echo $robot['year'], PHP_EOL;
}
Пример #23
0
 /**
  * Returns an array of allowed URLs
  * 
  * @return array
  */
 protected function allowedUrls()
 {
     return (array) Robots::config()->allowed_urls;
 }
<?php

$robot = new Robots();
$robot->type = 'mechanical';
$robot->name = 'Astro Boy';
$robot->year = 1952;
if ($robot->save() == false) {
    echo "Umh, We can't store robots right now ";
    foreach ($robot->getMessages() as $message) {
        echo $message;
    }
} else {
    echo "Great, a new robot was saved successfully!";
}
<?php

$robot = Robots::findFirst();
$robot->delete();
foreach (Robots::find() as $robot) {
    $robot->delete();
}
Пример #26
0
<?php

$robot = Robots::findFirst(array("type = 'virtual'", "order" => "name DESC", "limit" => 30));
$robots = Robots::find(array("conditions" => "type = ?1", "bind" => array(1 => "virtual")));
Пример #27
0
 public function _testSelectExecute($di)
 {
     $manager = $di->getShared('modelsManager');
     $robots = $manager->executeQuery('SELECT * FROM Robots');
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Resultset\\Simple', $robots);
     $this->assertEquals(count($robots), 3);
     $this->assertInstanceOf('Robots', $robots[0]);
     $robots = $manager->executeQuery('SELECT * FROM Robots ORDER BY 1');
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Resultset\\Simple', $robots);
     $this->assertEquals(count($robots), 3);
     $this->assertInstanceOf('Robots', $robots[0]);
     $this->assertEquals($robots[0]->id, 1);
     $robots = $manager->executeQuery('SELECT * FROM Robots ORDER BY id');
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Resultset\\Simple', $robots);
     $this->assertEquals(count($robots), 3);
     $this->assertInstanceOf('Robots', $robots[0]);
     $this->assertEquals($robots[0]->id, 1);
     $robots = $manager->executeQuery('SELECT * FROM Robots ORDER BY Robots.id');
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Resultset\\Simple', $robots);
     $this->assertEquals(count($robots), 3);
     $this->assertInstanceOf('Robots', $robots[0]);
     $this->assertEquals($robots[0]->id, 1);
     $robots = $manager->executeQuery('SELECT Robots.* FROM Robots');
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Resultset\\Simple', $robots);
     $this->assertInstanceOf('Robots', $robots[0]);
     $this->assertEquals(count($robots), 3);
     $robots = $manager->executeQuery('SELECT r.* FROM Robots r');
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Resultset\\Simple', $robots);
     $this->assertInstanceOf('Robots', $robots[0]);
     $this->assertEquals(count($robots), 3);
     $robots = $manager->executeQuery('SELECT * FROM Robots r');
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Resultset\\Simple', $robots);
     $this->assertInstanceOf('Robots', $robots[0]);
     $this->assertEquals(count($robots), 3);
     $robots = $manager->executeQuery('SELECT * FROM Robots AS r');
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Resultset\\Simple', $robots);
     $this->assertInstanceOf('Robots', $robots[0]);
     $this->assertEquals(count($robots), 3);
     $robots = $manager->executeQuery('SELECT * FROM Robots AS r');
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Resultset\\Simple', $robots);
     $this->assertInstanceOf('Robots', $robots[0]);
     $this->assertEquals(count($robots), 3);
     $result = $manager->executeQuery('SELECT id, name FROM Robots');
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Resultset\\Simple', $result);
     $this->assertEquals(count($result), 3);
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Row', $result[0]);
     $result = $manager->executeQuery('SELECT Robots.name FROM Robots');
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Resultset\\Simple', $result);
     $this->assertEquals(count($result), 3);
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Row', $result[0]);
     $result = $manager->executeQuery('SELECT LENGTH(name) AS the_length FROM Robots');
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Resultset\\Simple', $result);
     $this->assertEquals(count($result), 3);
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Row', $result[0]);
     $this->assertTrue(isset($result[0]->the_length));
     $this->assertEquals($result[0]->the_length, 8);
     $result = $manager->executeQuery('SELECT LENGTH(Robots.name) AS the_length FROM Robots');
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Resultset\\Simple', $result);
     $this->assertEquals(count($result), 3);
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Row', $result[0]);
     $this->assertTrue(isset($result[0]->the_length));
     $this->assertEquals($result[0]->the_length, 8);
     $result = $manager->executeQuery('SELECT Robots.id+1 AS nextId FROM Robots WHERE id = 1');
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Resultset\\Simple', $result);
     $this->assertEquals(count($result), 1);
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Row', $result[0]);
     $this->assertTrue(isset($result[0]->nextId));
     $this->assertEquals($result[0]->nextId, 2);
     $result = $manager->executeQuery('SELECT Robots.id+1 AS nextId FROM Robots WHERE id = ?0', array(0 => 1));
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Resultset\\Simple', $result);
     $this->assertEquals(count($result), 1);
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Row', $result[0]);
     $this->assertTrue(isset($result[0]->nextId));
     $this->assertEquals($result[0]->nextId, 2);
     $result = $manager->executeQuery('SELECT Robots.id+1 AS nextId FROM Robots WHERE id = :id:', array('id' => 1));
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Resultset\\Simple', $result);
     $this->assertEquals(count($result), 1);
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Row', $result[0]);
     $this->assertTrue(isset($result[0]->nextId));
     $this->assertEquals($result[0]->nextId, 2);
     $result = $manager->executeQuery('SELECT Robots.id+1 AS nextId FROM Robots WHERE id = "1"');
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Resultset\\Simple', $result);
     $this->assertEquals(count($result), 1);
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Row', $result[0]);
     $this->assertTrue(isset($result[0]->nextId));
     $this->assertEquals($result[0]->nextId, 2);
     $result = $manager->executeQuery('SELECT r.year FROM Robots r WHERE TRIM(name) != "Robotina"');
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Resultset\\Simple', $result);
     $this->assertEquals(count($result), 2);
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Row', $result[0]);
     $result = $manager->executeQuery('SELECT Robots.id+1 AS nextId FROM Robots ORDER BY id');
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Resultset\\Simple', $result);
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Row', $result[0]);
     $this->assertEquals(count($result), 3);
     $this->assertTrue(isset($result[0]->nextId));
     $this->assertEquals($result[0]->nextId, 2);
     $result = $manager->executeQuery('SELECT Robots.id+1 AS nextId FROM Robots ORDER BY id LIMIT 2');
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Resultset\\Simple', $result);
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Row', $result[0]);
     $this->assertEquals(count($result), 2);
     $this->assertTrue(isset($result[0]->nextId));
     $this->assertEquals($result[0]->nextId, 2);
     $result = $manager->executeQuery('SELECT Robots.id+1 AS nextId FROM Robots ORDER BY id DESC LIMIT 2');
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Resultset\\Simple', $result);
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Row', $result[0]);
     $this->assertEquals(count($result), 2);
     $this->assertTrue(isset($result[0]->nextId));
     $this->assertEquals($result[0]->nextId, 4);
     $result = $manager->executeQuery('SELECT r.name FROM Robots r ORDER BY r.name DESC LIMIT 2');
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Resultset\\Simple', $result);
     $this->assertEquals(count($result), 2);
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Row', $result[0]);
     $this->assertTrue(isset($result[0]->name));
     $this->assertEquals($result[0]->name, 'Terminator');
     $result = $manager->executeQuery('SELECT name le_name FROM Robots ORDER BY name ASC LIMIT 4');
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Resultset\\Simple', $result);
     $this->assertEquals(count($result), 3);
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Row', $result[0]);
     $this->assertTrue(isset($result[0]->le_name));
     $this->assertEquals($result[0]->le_name, 'Astro Boy');
     $result = $manager->executeQuery('SELECT r.name le_name FROM Robots r ORDER BY r.name ASC LIMIT 4');
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Resultset\\Simple', $result);
     $this->assertEquals(count($result), 3);
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Row', $result[0]);
     $this->assertTrue(isset($result[0]->le_name));
     $this->assertEquals($result[0]->le_name, 'Astro Boy');
     $result = $manager->executeQuery('SELECT r.name le_name FROM Robots r ORDER BY r.name ASC LIMIT 1,2');
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Resultset\\Simple', $result);
     $this->assertEquals(count($result), 2);
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Row', $result[0]);
     $this->assertTrue(isset($result[0]->le_name));
     $this->assertEquals($result[0]->le_name, 'Robotina');
     $result = $manager->executeQuery('SELECT r.name le_name FROM Robots r ORDER BY r.name ASC LIMIT 2 OFFSET 1');
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Resultset\\Simple', $result);
     $this->assertEquals(count($result), 2);
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Row', $result[0]);
     $this->assertTrue(isset($result[0]->le_name));
     $this->assertEquals($result[0]->le_name, 'Robotina');
     $result = $manager->executeQuery('SELECT r.type, COUNT(*) number FROM Robots r GROUP BY 1 ORDER BY r.type ASC');
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Resultset\\Simple', $result);
     $this->assertEquals(count($result), 2);
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Row', $result[0]);
     $this->assertEquals($result[1]->number, 2);
     $result = $manager->executeQuery('SELECT r.type, SUM(r.year-1000) age FROM Robots r GROUP BY 1 ORDER BY 2 DESC');
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Resultset\\Simple', $result);
     $this->assertEquals(count($result), 2);
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Row', $result[0]);
     $this->assertEquals($result[0]->age, 1924);
     $result = $manager->executeQuery('SELECT r.type, COUNT(*) number FROM Robots r GROUP BY 1 HAVING COUNT(*) = 2');
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Resultset\\Simple', $result);
     $this->assertEquals(count($result), 1);
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Row', $result[0]);
     $this->assertEquals($result[0]->number, 2);
     $result = $manager->executeQuery('SELECT r.type, COUNT(*) number FROM Robots r GROUP BY 1 HAVING COUNT(*) < 2');
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Resultset\\Simple', $result);
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Row', $result[0]);
     $this->assertEquals(count($result), 1);
     $this->assertEquals($result[0]->number, 1);
     //Cast function
     //TODO: CHAR in postgresql is acually a single char, but I can't specify a length
     //for the field type like CHAR(10) because phalcon phql doesn't support it
     $cast_type = "CHAR";
     if ($di->get("db") instanceof Phalcon\Db\Adapter\Pdo\Postgresql) {
         $cast_type = "TEXT";
     }
     $result = $manager->executeQuery("SELECT CAST(year AS {$cast_type}) test FROM Robots LIMIT 1");
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Resultset\\Simple', $result);
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Row', $result[0]);
     $this->assertEquals(Robots::findFirst()->year, $result[0]->test);
     //Convert using... is supported only by mysql (and it's in the sql standards, bad postgresql/sqlite!)
     if ($di->get("db") instanceof Phalcon\Db\Adapter\Pdo\Mysql) {
         $result = $manager->executeQuery("SELECT CONVERT(year USING utf8) test FROM Robots LIMIT 1");
         $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Resultset\\Simple', $result);
         $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Row', $result[0]);
         $this->assertEquals(Robots::findFirst()->year, $result[0]->test);
     }
     //Nested Cast
     $result = $manager->executeQuery("SELECT CAST(CAST(year AS {$cast_type}) AS DECIMAL) test FROM Robots LIMIT 1");
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Resultset\\Simple', $result);
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Row', $result[0]);
     $this->assertEquals(Robots::findFirst()->year, $result[0]->test);
     $result = $manager->executeQuery('SELECT r.id, r.* FROM Robots r');
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Resultset\\Complex', $result);
     $this->assertNotEquals(gettype($result[0]->id), 'object');
     $this->assertEquals(gettype($result[0]->r), 'object');
     $this->assertEquals(count($result), 3);
     $this->assertEquals($result[0]->id, 1);
     $result = $manager->executeQuery('SELECT Robots.*, RobotsParts.* FROM Robots JOIN RobotsParts ORDER BY Robots.id, RobotsParts.id');
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Resultset\\Complex', $result);
     $this->assertEquals(gettype($result[0]->robots), 'object');
     $this->assertEquals(get_class($result[0]->robots), 'Robots');
     $this->assertEquals(gettype($result[0]->robotsParts), 'object');
     $this->assertEquals(get_class($result[0]->robotsParts), 'RobotsParts');
     $this->assertEquals(count($result), 3);
     $this->assertEquals($result[0]->robots->id, 1);
     $this->assertEquals($result[0]->robotsParts->id, 1);
     $this->assertEquals($result[1]->robots->id, 1);
     $this->assertEquals($result[1]->robotsParts->id, 2);
     $result = $manager->executeQuery('SELECT Robots.*, RobotsParts.* FROM Robots JOIN RobotsParts ON Robots.id = RobotsParts.robots_id ORDER BY Robots.id, RobotsParts.id');
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Resultset\\Complex', $result);
     $this->assertEquals(gettype($result[0]->robots), 'object');
     $this->assertEquals(get_class($result[0]->robots), 'Robots');
     $this->assertEquals(gettype($result[0]->robotsParts), 'object');
     $this->assertEquals(get_class($result[0]->robotsParts), 'RobotsParts');
     $this->assertEquals(count($result), 3);
     $this->assertEquals($result[0]->robots->id, 1);
     $this->assertEquals($result[0]->robotsParts->id, 1);
     $this->assertEquals($result[1]->robots->id, 1);
     $this->assertEquals($result[1]->robotsParts->id, 2);
     $result = $manager->executeQuery('SELECT r.*, p.* FROM Robots r JOIN RobotsParts p ON r.id = p.robots_id ORDER BY r.id, p.id');
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Resultset\\Complex', $result);
     $this->assertEquals(gettype($result[0]->r), 'object');
     $this->assertEquals(get_class($result[0]->r), 'Robots');
     $this->assertEquals(gettype($result[0]->p), 'object');
     $this->assertEquals(get_class($result[0]->p), 'RobotsParts');
     $this->assertEquals(count($result), 3);
     $this->assertEquals($result[0]->r->id, 1);
     $this->assertEquals($result[0]->p->id, 1);
     $this->assertEquals($result[1]->r->id, 1);
     $this->assertEquals($result[1]->p->id, 2);
     //Joins with namespaces
     $result = $manager->executeQuery('SELECT Some\\Robots.*, Some\\RobotsParts.* FROM Some\\Robots JOIN Some\\RobotsParts ON Some\\Robots.id = Some\\RobotsParts.robots_id ORDER BY Some\\Robots.id, Some\\RobotsParts.id');
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Resultset\\Complex', $result);
     $this->assertEquals(gettype($result[0]->{'some\\Robots'}), 'object');
     $this->assertEquals(get_class($result[0]->{'some\\Robots'}), 'Some\\Robots');
     $this->assertEquals(gettype($result[0]->{'some\\RobotsParts'}), 'object');
     $this->assertEquals(get_class($result[0]->{'some\\RobotsParts'}), 'Some\\RobotsParts');
     $this->assertEquals(count($result), 3);
     $this->assertEquals($result[0]->{'some\\Robots'}->id, 1);
     $this->assertEquals($result[0]->{'some\\RobotsParts'}->id, 1);
     $this->assertEquals($result[1]->{'some\\Robots'}->id, 1);
     $this->assertEquals($result[1]->{'some\\RobotsParts'}->id, 2);
     //Joins with namespaces and aliases
     $result = $manager->executeQuery('SELECT r.*, p.* FROM Some\\Robots r JOIN Some\\RobotsParts p ON r.id = p.robots_id ORDER BY r.id, p.id');
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Resultset\\Complex', $result);
     $this->assertEquals(gettype($result[0]->r), 'object');
     $this->assertEquals(get_class($result[0]->r), 'Some\\Robots');
     $this->assertEquals(gettype($result[0]->p), 'object');
     $this->assertEquals(get_class($result[0]->p), 'Some\\RobotsParts');
     $this->assertEquals(count($result), 3);
     $this->assertEquals($result[0]->r->id, 1);
     $this->assertEquals($result[0]->p->id, 1);
     $this->assertEquals($result[1]->r->id, 1);
     $this->assertEquals($result[1]->p->id, 2);
     $result = $manager->executeQuery('SELECT id, name FROM Some\\Robots');
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Resultset\\Simple', $result);
     $this->assertEquals(count($result), 3);
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Row', $result[0]);
     $result = $manager->executeQuery('SELECT id, name FROM Some\\Robots ORDER BY name DESC LIMIT 2');
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Resultset\\Simple', $result);
     $this->assertEquals(count($result), 2);
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Row', $result[0]);
     // Issue 1011
     $result = $manager->executeQuery('SELECT r.name le_name FROM Robots r ORDER BY r.name ASC LIMIT ?1,?2', array(1 => 1, 2 => 2), array(1 => \Phalcon\Db\Column::BIND_PARAM_INT, 2 => \Phalcon\Db\Column::BIND_PARAM_INT));
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Resultset\\Simple', $result);
     $this->assertEquals(count($result), 2);
     $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Row', $result[0]);
     $this->assertTrue(isset($result[0]->le_name));
     $this->assertEquals($result[0]->le_name, 'Robotina');
 }
Пример #28
0
<?php

$robots = Robots::find('id < 1000');
$robots = Robots::find('id > 100 AND type = "A"');
$robots = Robots::find('(id > 100 AND type = "A") AND id < 2000');
$robots = Robots::find(array('(id > ?0 AND type = "A") AND id < ?1', 'bind' => array(100, 2000), 'order' => 'type'));
Пример #29
0
<?php

$robots = Robots::find(array(array("type" => "mechanical")));
foreach ($robots as $robot) {
    if ($robot->delete() == false) {
        echo "Sorry, we can't delete the robot right now: \n";
        foreach ($robot->getMessages() as $message) {
            echo $message, "\n";
        }
    } else {
        echo "The robot was deleted successfully!";
    }
}
Пример #30
0
<?php

$robot = Robots::findFirst();
$form = new Form($robot);
$form->add(new Text("name"));
$form->add(new Text("year"));