コード例 #1
0
 protected function _executeTests($di)
 {
     $connection = $di->getShared('db');
     $success = $connection->delete("personas", "cedula LIKE 'T-Cx%'");
     $this->assertTrue($success);
     $numPersonas = Personas::count();
     $this->assertGreaterThan(0, $numPersonas);
     $transactionManager = $di->getShared('transactionManager');
     try {
         $transaction1 = $transactionManager->get();
         $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Transaction', $transaction1);
         $this->assertNotEquals($transaction1->getConnection()->getConnectionId(), $connection->getConnectionId());
         $p = 100;
         for ($i = 0; $i < 10; $i++) {
             $persona = new Personas($di);
             $persona->setTransaction($transaction1);
             $persona->cedula = 'T-Cx' . $i;
             $persona->tipo_documento_id = 1;
             $persona->nombres = 'LOST LOST';
             $persona->telefono = '2';
             $persona->cupo = 0;
             $persona->estado = 'A';
             $this->assertTrue($persona->save());
             $p++;
         }
         //We rollback the transaction
         $transaction1->rollback();
         $this->assertTrue(FALSE, 'oh, Why?');
     } catch (Phalcon\Mvc\Model\Transaction\Failed $e) {
         $this->assertTrue(true);
     }
     //Now we check if the records was correctly rolledbacked
     $rollbackNumPersonas = Personas::count();
     $this->assertEquals($numPersonas, $rollbackNumPersonas);
     //Creating another transaction
     try {
         $transaction2 = $transactionManager->get();
         $this->assertInstanceOf('Phalcon\\Mvc\\Model\\Transaction', $transaction2);
         $this->assertNotEquals($transaction2->getConnection()->getConnectionId(), $connection->getConnectionId());
         $this->assertNotEquals($transaction1->getConnection()->getConnectionId(), $transaction2->getConnection()->getConnectionId());
         $p = 200;
         for ($i = 0; $i < 15; $i++) {
             $persona = new Personas($di);
             $persona->setTransaction($transaction2);
             $persona->cedula = 'T-Cx' . $p;
             $persona->tipo_documento_id = 1;
             $persona->nombres = 'LOST LOST';
             $persona->telefono = '1';
             $persona->cupo = 0;
             $persona->estado = 'A';
             $this->assertTrue($persona->save());
             $p++;
         }
         //This time we commit the transaction
         $transaction2->commit();
         $commitNumPersonas = Personas::count();
         $this->assertEquals($commitNumPersonas, $numPersonas + 15);
     } catch (Phalcon\Mvc\Model\Transaction\Failed $e) {
         $this->assertTrue(FALSE, 'oh, Why?');
     }
 }