Kohana v3.3.0
This commit is contained in:
111
system/tests/kohana/LogTest.php
Normal file
111
system/tests/kohana/LogTest.php
Normal file
@@ -0,0 +1,111 @@
|
||||
<?php defined('SYSPATH') OR die('Kohana bootstrap needs to be included before tests run');
|
||||
|
||||
/**
|
||||
* Tests Kohana Logging API
|
||||
*
|
||||
* @group kohana
|
||||
* @group kohana.core
|
||||
* @group kohana.core.logging
|
||||
*
|
||||
* @package Kohana
|
||||
* @category Tests
|
||||
* @author Kohana Team
|
||||
* @author Matt Button <matthew@sigswitch.com>
|
||||
* @copyright (c) 2008-2012 Kohana Team
|
||||
* @license http://kohanaframework.org/license
|
||||
*/
|
||||
class Kohana_LogTest extends Unittest_TestCase
|
||||
{
|
||||
|
||||
/**
|
||||
* Tests that when a new logger is created the list of messages is initially
|
||||
* empty
|
||||
*
|
||||
* @test
|
||||
* @covers Log
|
||||
*/
|
||||
public function test_messages_is_initially_empty()
|
||||
{
|
||||
$logger = new Log;
|
||||
|
||||
$this->assertAttributeSame(array(), '_messages', $logger);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests that when a new logger is created the list of writers is initially
|
||||
* empty
|
||||
*
|
||||
* @test
|
||||
* @covers Log
|
||||
*/
|
||||
public function test_writers_is_initially_empty()
|
||||
{
|
||||
$logger = new Log;
|
||||
|
||||
$this->assertAttributeSame(array(), '_writers', $logger);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test that attaching a log writer using an array of levels adds it to the array of log writers
|
||||
*
|
||||
* @TODO Is this test too specific?
|
||||
*
|
||||
* @test
|
||||
* @covers Log::attach
|
||||
*/
|
||||
public function test_attach_attaches_log_writer_and_returns_this()
|
||||
{
|
||||
$logger = new Log;
|
||||
$writer = $this->getMockForAbstractClass('Log_Writer');
|
||||
|
||||
$this->assertSame($logger, $logger->attach($writer));
|
||||
|
||||
$this->assertAttributeSame(
|
||||
array(spl_object_hash($writer) => array('object' => $writer, 'levels' => array())),
|
||||
'_writers',
|
||||
$logger
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test that attaching a log writer using a min/max level adds it to the array of log writers
|
||||
*
|
||||
* @TODO Is this test too specific?
|
||||
*
|
||||
* @test
|
||||
* @covers Log::attach
|
||||
*/
|
||||
public function test_attach_attaches_log_writer_min_max_and_returns_this()
|
||||
{
|
||||
$logger = new Log;
|
||||
$writer = $this->getMockForAbstractClass('Log_Writer');
|
||||
|
||||
$this->assertSame($logger, $logger->attach($writer, Log::NOTICE, Log::CRITICAL));
|
||||
|
||||
$this->assertAttributeSame(
|
||||
array(spl_object_hash($writer) => array('object' => $writer, 'levels' => array(Log::CRITICAL, Log::ERROR, Log::WARNING, Log::NOTICE))),
|
||||
'_writers',
|
||||
$logger
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* When we call detach() we expect the specified log writer to be removed
|
||||
*
|
||||
* @test
|
||||
* @covers Log::detach
|
||||
*/
|
||||
public function test_detach_removes_log_writer_and_returns_this()
|
||||
{
|
||||
$logger = new Log;
|
||||
$writer = $this->getMockForAbstractClass('Log_Writer');
|
||||
|
||||
$logger->attach($writer);
|
||||
|
||||
$this->assertSame($logger, $logger->detach($writer));
|
||||
|
||||
$this->assertAttributeSame(array(), '_writers', $logger);
|
||||
}
|
||||
|
||||
|
||||
}
|
Reference in New Issue
Block a user