Carsten Brandt
11 years ago
2 changed files with 123 additions and 0 deletions
@ -0,0 +1,33 @@ |
|||||||
|
<?php |
||||||
|
/** |
||||||
|
* @author Carsten Brandt <mail@cebe.cc> |
||||||
|
*/ |
||||||
|
|
||||||
|
namespace yiiunit\framework\log; |
||||||
|
|
||||||
|
|
||||||
|
use yii\debug\LogTarget; |
||||||
|
use yii\log\FileTarget; |
||||||
|
use yii\log\Logger; |
||||||
|
use yiiunit\TestCase; |
||||||
|
|
||||||
|
class LoggerTest extends TestCase |
||||||
|
{ |
||||||
|
|
||||||
|
public function testLog() |
||||||
|
{ |
||||||
|
$logger = new Logger(); |
||||||
|
|
||||||
|
$logger->log('test1', Logger::LEVEL_INFO); |
||||||
|
$this->assertEquals(1, count($logger->messages)); |
||||||
|
$this->assertEquals('test1', $logger->messages[0][0]); |
||||||
|
$this->assertEquals(Logger::LEVEL_INFO, $logger->messages[0][1]); |
||||||
|
$this->assertEquals('application', $logger->messages[0][2]); |
||||||
|
|
||||||
|
$logger->log('test2', Logger::LEVEL_ERROR, 'category'); |
||||||
|
$this->assertEquals(2, count($logger->messages)); |
||||||
|
$this->assertEquals('test2', $logger->messages[1][0]); |
||||||
|
$this->assertEquals(Logger::LEVEL_ERROR, $logger->messages[1][1]); |
||||||
|
$this->assertEquals('category', $logger->messages[1][2]); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,90 @@ |
|||||||
|
<?php |
||||||
|
/** |
||||||
|
* @author Carsten Brandt <mail@cebe.cc> |
||||||
|
*/ |
||||||
|
|
||||||
|
namespace yiiunit\framework\log; |
||||||
|
|
||||||
|
|
||||||
|
use yii\debug\LogTarget; |
||||||
|
use yii\log\FileTarget; |
||||||
|
use yii\log\Logger; |
||||||
|
use yii\log\Target; |
||||||
|
use yiiunit\TestCase; |
||||||
|
|
||||||
|
class TargetTest extends TestCase |
||||||
|
{ |
||||||
|
public static $messages; |
||||||
|
|
||||||
|
public function filters() |
||||||
|
{ |
||||||
|
return [ |
||||||
|
[[], ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']], |
||||||
|
|
||||||
|
[['levels' => 0], ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']], |
||||||
|
[ |
||||||
|
['levels' => Logger::LEVEL_INFO | Logger::LEVEL_WARNING | Logger::LEVEL_ERROR | Logger::LEVEL_TRACE], |
||||||
|
['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'] |
||||||
|
], |
||||||
|
[['levels' => ['error']], ['B', 'G', 'H']], |
||||||
|
[['levels' => Logger::LEVEL_ERROR], ['B', 'G', 'H']], |
||||||
|
[['levels' => ['error', 'warning']], ['B', 'C', 'G', 'H']], |
||||||
|
[['levels' => Logger::LEVEL_ERROR | Logger::LEVEL_WARNING], ['B', 'C', 'G', 'H']], |
||||||
|
|
||||||
|
[['categories' => ['application']], ['A', 'B', 'C', 'D', 'E']], |
||||||
|
[['categories' => ['application*']], ['A', 'B', 'C', 'D', 'E', 'F']], |
||||||
|
[['categories' => ['application.*']], ['F']], |
||||||
|
[['categories' => ['application.components']], []], |
||||||
|
[['categories' => ['application.components.Test']], ['F']], |
||||||
|
[['categories' => ['application.components.*']], ['F']], |
||||||
|
[['categories' => ['application.*', 'yii.db.*']], ['F', 'G', 'H']], |
||||||
|
[['categories' => ['application.*', 'yii.db.*'], 'except' => ['yii.db.Command.*']], ['F', 'G']], |
||||||
|
|
||||||
|
[['categories' => ['application', 'yii.db.*'], 'levels' => Logger::LEVEL_ERROR], ['B', 'G', 'H']], |
||||||
|
[['categories' => ['application'], 'levels' => Logger::LEVEL_ERROR], ['B']], |
||||||
|
[['categories' => ['application'], 'levels' => Logger::LEVEL_ERROR | Logger::LEVEL_WARNING], ['B', 'C']], |
||||||
|
]; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* @dataProvider filters |
||||||
|
*/ |
||||||
|
public function testFilter($filter, $expected) |
||||||
|
{ |
||||||
|
static::$messages = []; |
||||||
|
|
||||||
|
$logger = new Logger([ |
||||||
|
'targets' => [new TestTarget(array_merge($filter, ['logVars' => []]))], |
||||||
|
'flushInterval' => 1, |
||||||
|
]); |
||||||
|
$logger->log('testA', Logger::LEVEL_INFO); |
||||||
|
$logger->log('testB', Logger::LEVEL_ERROR); |
||||||
|
$logger->log('testC', Logger::LEVEL_WARNING); |
||||||
|
$logger->log('testD', Logger::LEVEL_TRACE); |
||||||
|
$logger->log('testE', Logger::LEVEL_INFO, 'application'); |
||||||
|
$logger->log('testF', Logger::LEVEL_INFO, 'application.components.Test'); |
||||||
|
$logger->log('testG', Logger::LEVEL_ERROR, 'yii.db.Command'); |
||||||
|
$logger->log('testH', Logger::LEVEL_ERROR, 'yii.db.Command.whatever'); |
||||||
|
|
||||||
|
$this->assertEquals(count($expected), count(static::$messages)); |
||||||
|
$i = 0; |
||||||
|
foreach($expected as $e) { |
||||||
|
$this->assertEquals('test' . $e, static::$messages[$i++][0]); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
class TestTarget extends Target |
||||||
|
{ |
||||||
|
public $exportInterval = 1; |
||||||
|
|
||||||
|
/** |
||||||
|
* Exports log [[messages]] to a specific destination. |
||||||
|
* Child classes must implement this method. |
||||||
|
*/ |
||||||
|
public function export() |
||||||
|
{ |
||||||
|
TargetTest::$messages = array_merge(TargetTest::$messages, $this->messages); |
||||||
|
$this->messages = []; |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue