Файл: symfony-2.7/src/Symfony/Bridge/Propel1/Tests/DataCollector/PropelDataCollectorTest.php
Строк: 83
<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace SymfonyBridgePropel1TestsDataCollector;
use SymfonyBridgePropel1DataCollectorPropelDataCollector;
use SymfonyComponentHttpFoundationRequest;
use SymfonyComponentHttpFoundationResponse;
use SymfonyBridgePropel1TestsPropel1TestCase;
class PropelDataCollectorTest extends Propel1TestCase
{
public function testCollectWithoutData()
{
$c = $this->createCollector(array());
$c->collect(new Request(), new Response());
$this->assertEquals(array(), $c->getQueries());
$this->assertEquals(0, $c->getQueryCount());
}
public function testCollectWithData()
{
$queries = array(
"time: 0.000 sec | mem: 1.4 MB | connection: default | SET NAMES 'utf8'",
);
$c = $this->createCollector($queries);
$c->collect(new Request(), new Response());
$this->assertEquals(array(
array(
'sql' => "SET NAMES 'utf8'",
'time' => '0.000 sec',
'connection' => 'default',
'memory' => '1.4 MB',
),
), $c->getQueries());
$this->assertEquals(1, $c->getQueryCount());
}
public function testCollectWithMultipleData()
{
$queries = array(
"time: 0.000 sec | mem: 1.4 MB | connection: default | SET NAMES 'utf8'",
"time: 0.012 sec | mem: 2.4 MB | connection: default | SELECT tags.NAME, image.FILENAME FROM tags LEFT JOIN image ON tags.IMAGEID = image.ID WHERE image.ID = 12",
"time: 0.012 sec | mem: 2.4 MB | connection: default | INSERT INTO `table` (`some_array`) VALUES ('| 1 | 2 | 3 |')",
);
$c = $this->createCollector($queries);
$c->collect(new Request(), new Response());
$this->assertEquals(array(
array(
'sql' => "SET NAMES 'utf8'",
'time' => '0.000 sec',
'connection' => 'default',
'memory' => '1.4 MB',
),
array(
'sql' => "SELECT tags.NAME, image.FILENAME FROM tags LEFT JOIN image ON tags.IMAGEID = image.ID WHERE image.ID = 12",
'time' => '0.012 sec',
'connection' => 'default',
'memory' => '2.4 MB',
),
array(
'sql' => "INSERT INTO `table` (`some_array`) VALUES ('| 1 | 2 | 3 |')",
'time' => '0.012 sec',
'connection' => 'default',
'memory' => '2.4 MB',
),
), $c->getQueries());
$this->assertEquals(3, $c->getQueryCount());
$this->assertEquals(0.024, $c->getTime());
}
private function createCollector($queries)
{
$config = $this->getMock('PropelConfiguration');
$config
->expects($this->any())
->method('getParameter')
->will($this->returnArgument(1))
;
$logger = $this->getMock('SymfonyBridgePropel1LoggerPropelLogger');
$logger
->expects($this->any())
->method('getQueries')
->will($this->returnValue($queries))
;
return new PropelDataCollector($logger, $config);
}
}