public function testSerializeBigMssql()
 {
     if (!$this->_prepareTestMssql()) {
         $this->markTestSkipped("Skipped");
         return;
     }
     $data = serialize(Personas::find(array('limit' => 33)));
     $personas = unserialize($data);
     $this->assertEquals(get_class($personas), 'Phalcon\\Mvc\\Model\\Resultset\\Simple');
     $this->_applyTestsBig($personas);
 }
Esempio n. 2
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();
 }
Esempio n. 3
0
 public function testBigResultsetIteration()
 {
     if (!$this->_prepareTestSqlite()) {
         $this->markTestSkipped("Skipped");
         return;
     }
     // Resultsets count > 25 use fetch for one row at a time
     $personas = Personas::find(array('limit' => 33));
     $this->assertEquals(count($personas), 33);
     $this->assertEquals(get_class($personas->getLast()), 'Personas');
     // take first object as reference
     $persona_first = $personas[0];
     $this->assertEquals(get_class($persona_first), 'Personas');
     // make sure objects are the same -> object was not recreared
     $this->assertSame($personas[0], $persona_first);
     $this->assertSame($personas->current(), $persona_first);
     $personas->rewind();
     $this->assertTrue($personas->valid());
     $this->assertSame($personas->current(), $persona_first);
     // second element
     $personas->next();
     $this->assertTrue($personas->valid());
     $persona_second = $personas->current();
     $this->assertSame($persona_second, $personas[1]);
     // move to last element
     $this->assertSame($personas->getLast(), $personas[32]);
     // invalid element
     $personas->seek(33);
     $this->assertFalse($personas->valid());
     $this->assertFalse($personas->current());
     try {
         $persona = $personas[33];
         $this->assertFalse(true);
     } catch (Exception $e) {
         $this->assertEquals($e->getMessage(), 'The index does not exist in the cursor');
     }
     // roll-back-cursor -> query needs to be reexecuted
     // first object was now recreated... different instance, but equal content
     $this->assertNotSame($personas[0], $persona_first);
     $this->assertEquals($personas[0], $persona_first);
     $persona_first = $personas[0];
     // toArray also re-executes the query and invalidates internal pointer
     $array = $personas->toArray();
     $this->assertEquals(count($array), 33);
     // internal query is re-executed again and set to first
     $this->assertNotSame($personas[0], $persona_first);
     $this->assertEquals($personas[0], $persona_first);
     // move to second element and validate
     $personas->next();
     $this->assertTrue($personas->valid());
     $this->assertEquals(get_class($personas[1]), 'Personas');
     $this->assertSame($personas->current(), $personas[1]);
     $this->assertEquals($persona_second, $personas[1]);
     // pick some random indices
     $this->assertEquals(get_class($personas[12]), 'Personas');
     $this->assertEquals(get_class($personas[23]), 'Personas');
     $this->assertEquals(get_class($personas[23]), 'Personas');
 }