| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- <?php declare(strict_types=1);
- /*
- * 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;
- use PHPUnit\Framework\Attributes\DataProvider;
- class RegistryTest extends \PHPUnit\Framework\TestCase
- {
- protected function setUp(): void
- {
- Registry::clear();
- }
- /**
- * @covers Monolog\Registry::hasLogger
- */
- #[DataProvider('hasLoggerProvider')]
- 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 static function hasLoggerProvider()
- {
- $logger1 = new Logger('test1');
- $logger2 = new Logger('test2');
- $logger3 = new Logger('test3');
- return [
- // only instances
- [
- [$logger1],
- [$logger1, $logger2],
- [true, false],
- ],
- // only names
- [
- [$logger1],
- ['test1', 'test2'],
- [true, false],
- ],
- // mixed case
- [
- [$logger1, $logger2],
- ['test1', $logger2, 'test3', $logger3],
- [true, true, false, false],
- ],
- ];
- }
- /**
- * @covers Monolog\Registry::clear
- */
- public function testClearClears()
- {
- Registry::addLogger(new Logger('test1'), 'log');
- Registry::clear();
- $this->expectException('\InvalidArgumentException');
- Registry::getInstance('log');
- }
- /**
- * @covers Monolog\Registry::addLogger
- * @covers Monolog\Registry::removeLogger
- */
- #[DataProvider('removedLoggerProvider')]
- public function testRemovesLogger($loggerToAdd, $remove)
- {
- Registry::addLogger($loggerToAdd);
- Registry::removeLogger($remove);
- $this->expectException('\InvalidArgumentException');
- Registry::getInstance($loggerToAdd->getName());
- }
- public static function removedLoggerProvider()
- {
- $logger1 = new Logger('test1');
- return [
- [$logger1, $logger1],
- [$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());
- }
- /**
- * @covers Monolog\Registry::getInstance
- */
- public function testFailsOnNonExistentLogger()
- {
- $this->expectException(\InvalidArgumentException::class);
- 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'));
- }
- /**
- * @covers Monolog\Registry::addLogger
- */
- public function testFailsOnUnspecifiedReplacement()
- {
- $log1 = new Logger('test1');
- $log2 = new Logger('test2');
- Registry::addLogger($log1, 'log');
- $this->expectException(\InvalidArgumentException::class);
- Registry::addLogger($log2, 'log');
- }
- }
|