public function _executeTests($connection)
{
$eventsManager = new Phalcon\Events\Manager();
$listener = new DbProfilerListener();
$eventsManager->attach('db', $listener);
$connection->setEventsManager($eventsManager);
$connection->query("SELECT * FROM personas LIMIT 3");
$profiler = $listener->getProfiler();
$this->assertEquals($profiler->getNumberTotalStatements(), 1);
$profile = $profiler->getLastProfile();
$this->assertEquals(get_class($profile), 'Phalcon\\Db\\Profiler\\Item');
$this->assertEquals($profile->getSQLStatement(), "SELECT * FROM personas LIMIT 3");
$this->assertEquals(gettype($profile->getInitialTime()), "double");
$this->assertEquals(gettype($profile->getFinalTime()), "double");
$this->assertEquals(gettype($profile->getTotalElapsedSeconds()), "double");
$this->assertTrue($profile->getFinalTime() > $profile->getInitialTime());
$connection->query("SELECT * FROM personas LIMIT 100");
$this->assertEquals($profiler->getNumberTotalStatements(), 2);
$profile = $profiler->getLastProfile();
$this->assertEquals(get_class($profile), 'Phalcon\\Db\\Profiler\\Item');
$this->assertEquals($profile->getSQLStatement(), "SELECT * FROM personas LIMIT 100");
$this->assertTrue($profile->getFinalTime() > $profile->getInitialTime());
$connection->query("SELECT * FROM personas LIMIT 5");
$connection->query("SELECT * FROM personas LIMIT 10");
$connection->query("SELECT * FROM personas LIMIT 15");
$this->assertEquals(count($profiler->getProfiles()), 5);
$this->assertEquals($profiler->getNumberTotalStatements(), 5);
$this->assertEquals(gettype($profiler->getTotalElapsedSeconds()), "double");
$this->assertEquals($profiler->getPoints(), 0);
$profiler->reset();
$this->assertEquals(count($profiler->getProfiles()), 0);
$this->assertEquals($profiler->getNumberTotalStatements(), 0);
}