scratch – Rev
?pathlinks?
<?php
/*
* This file is part of the Monolog package.
*
* (c) Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Monolog;
class RegistryTest extends \PHPUnit_Framework_TestCase
{
protected function setUp()
{
Registry::clear();
}
/**
* @dataProvider hasLoggerProvider
* @covers Monolog\Registry::hasLogger
*/
public function testHasLogger(array $loggersToAdd, array $loggersToCheck, array $expectedResult)
{
foreach ($loggersToAdd as $loggerToAdd) {
Registry::addLogger($loggerToAdd);
}
foreach ($loggersToCheck as $index => $loggerToCheck) {
$this->assertSame($expectedResult[$index], Registry::hasLogger($loggerToCheck));
}
}
public function hasLoggerProvider()
{
$logger1 = new Logger('test1');
$logger2 = new Logger('test2');
$logger3 = new Logger('test3');
return array(
// only instances
array(
array($logger1),
array($logger1, $logger2),
array(true, false),
),
// only names
array(
array($logger1),
array('test1', 'test2'),
array(true, false),
),
// mixed case
array(
array($logger1, $logger2),
array('test1', $logger2, 'test3', $logger3),
array(true, true, false, false),
),
);
}
/**
* @covers Monolog\Registry::clear
*/
public function testClearClears()
{
Registry::addLogger(new Logger('test1'), 'log');
Registry::clear();
$this->setExpectedException('\InvalidArgumentException');
Registry::getInstance('log');
}
/**
* @dataProvider removedLoggerProvider
* @covers Monolog\Registry::addLogger
* @covers Monolog\Registry::removeLogger
*/
public function testRemovesLogger($loggerToAdd, $remove)
{
Registry::addLogger($loggerToAdd);
Registry::removeLogger($remove);
$this->setExpectedException('\InvalidArgumentException');
Registry::getInstance($loggerToAdd->getName());
}
public function removedLoggerProvider()
{
$logger1 = new Logger('test1');
return array(
array($logger1, $logger1),
array($logger1, 'test1'),
);
}
/**
* @covers Monolog\Registry::addLogger
* @covers Monolog\Registry::getInstance
* @covers Monolog\Registry::__callStatic
*/
public function testGetsSameLogger()
{
$logger1 = new Logger('test1');
$logger2 = new Logger('test2');
Registry::addLogger($logger1, 'test1');
Registry::addLogger($logger2);
$this->assertSame($logger1, Registry::getInstance('test1'));
$this->assertSame($logger2, Registry::test2());
}
/**
* @expectedException \InvalidArgumentException
* @covers Monolog\Registry::getInstance
*/
public function testFailsOnNonExistantLogger()
{
Registry::getInstance('test1');
}
/**
* @covers Monolog\Registry::addLogger
*/
public function testReplacesLogger()
{
$log1 = new Logger('test1');
$log2 = new Logger('test2');
Registry::addLogger($log1, 'log');
Registry::addLogger($log2, 'log', true);
$this->assertSame($log2, Registry::getInstance('log'));
}
/**
* @expectedException \InvalidArgumentException
* @covers Monolog\Registry::addLogger
*/
public function testFailsOnUnspecifiedReplacement()
{
$log1 = new Logger('test1');
$log2 = new Logger('test2');
Registry::addLogger($log1, 'log');
Registry::addLogger($log2, 'log');
}
}