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?'); } }