From: Art4 Date: Sun, 15 Dec 2024 21:28:34 +0000 (+0000) Subject: Rename AbstractLoggerTest to LoggerTestCase X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=b09fb1047fa57162b04b0b8145eafa452e8d74bb;p=friendica.git Rename AbstractLoggerTest to LoggerTestCase --- diff --git a/tests/LoggerDataTrait.php b/tests/LoggerDataTrait.php new file mode 100644 index 0000000000..229a1997ea --- /dev/null +++ b/tests/LoggerDataTrait.php @@ -0,0 +1,57 @@ + [ + 'function' => 'emergency', + 'message' => 'test', + 'context' => ['a' => 'context'], + ], + 'alert' => [ + 'function' => 'alert', + 'message' => 'test {test}', + 'context' => ['a' => 'context', 2 => 'so', 'test' => 'works'], + ], + 'critical' => [ + 'function' => 'critical', + 'message' => 'test crit 2345', + 'context' => ['a' => 'context', 'wit' => ['more', 'array']], + ], + 'error' => [ + 'function' => 'error', + 'message' => 2.554, + 'context' => [], + ], + 'warning' => [ + 'function' => 'warning', + 'message' => 'test warn', + 'context' => ['a' => 'context'], + ], + 'notice' => [ + 'function' => 'notice', + 'message' => 2346, + 'context' => ['a' => 'context'], + ], + 'info' => [ + 'function' => 'info', + 'message' => null, + 'context' => ['a' => 'context'], + ], + 'debug' => [ + 'function' => 'debug', + 'message' => true, + 'context' => ['a' => false], + ], + ]; + } +} diff --git a/tests/LoggerTestCase.php b/tests/LoggerTestCase.php new file mode 100644 index 0000000000..a31ba5d6a9 --- /dev/null +++ b/tests/LoggerTestCase.php @@ -0,0 +1,185 @@ +introspection = \Mockery::mock(Introspection::class); + $this->introspection->shouldReceive('getRecord')->andReturn([ + 'file' => self::FILE, + 'line' => self::LINE, + 'function' => self::FUNC + ]); + + $this->config = \Mockery::mock(IManageConfigValues::class); + } + + public function assertLogline($string) + { + self::assertMatchesRegularExpression(self::LOGLINE, $string); + } + + public function assertLoglineNums($assertNum, $string) + { + self::assertEquals($assertNum, preg_match_all(self::LOGLINE, $string)); + } + + /** + * Test if the logger works correctly + */ + public function testNormal() + { + $logger = $this->getInstance(); + $logger->emergency('working!'); + $logger->alert('working too!'); + $logger->debug('and now?'); + $logger->notice('message', ['an' => 'context']); + + $text = $this->getContent(); + self::assertLogline($text); + self::assertLoglineNums(4, $text); + } + + /** + * Test if a log entry is correctly interpolated + */ + public function testPsrInterpolate() + { + $logger = $this->getInstance(); + + $logger->emergency('A {psr} test', ['psr' => 'working']); + $logger->alert('An {array} test', ['array' => ['it', 'is', 'working']]); + $text = $this->getContent(); + self::assertStringContainsString('A working test', $text); + self::assertStringContainsString('An ["it","is","working"] test', $text); + } + + /** + * Test if a log entry contains all necessary information + */ + public function testContainsInformation() + { + $logger = $this->getInstance(); + $logger->emergency('A test'); + + $text = $this->getContent(); + self::assertStringContainsString('"file":"' . self::FILE . '"', $text); + self::assertStringContainsString('"line":' . self::LINE, $text); + self::assertStringContainsString('"function":"' . self::FUNC . '"', $text); + } + + /** + * Test if the minimum level is working + */ + public function testMinimumLevel() + { + $logger = $this->getInstance(LogLevel::NOTICE); + + $logger->emergency('working'); + $logger->alert('working'); + $logger->error('working'); + $logger->warning('working'); + $logger->notice('working'); + $logger->info('not working'); + $logger->debug('not working'); + + $text = $this->getContent(); + + self::assertLoglineNums(5, $text); + } + + /** + * Test with different logging data + * @dataProvider dataTests + */ + public function testDifferentTypes($function, $message, array $context) + { + $logger = $this->getInstance(); + $logger->$function($message, $context); + + $text = $this->getContent(); + + self::assertLogline($text); + + self::assertStringContainsString(@json_encode($context, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE), $text); + } + + /** + * Test a message with an exception + */ + public function testExceptionHandling() + { + $e = new \Exception("Test String", 123); + $eFollowUp = new \Exception("FollowUp", 456, $e); + + $assertion = $eFollowUp->__toString(); + + $logger = $this->getInstance(); + $logger->alert('test', ['e' => $eFollowUp]); + $text = $this->getContent(); + + self::assertLogline($text); + + self::assertStringContainsString(@json_encode($assertion, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE), $this->getContent()); + } + + public function testNoObjectHandling() + { + $logger = $this->getInstance(); + $logger->alert('test', ['e' => ['test' => 'test']]); + $text = $this->getContent(); + + self::assertLogline($text); + + self::assertStringContainsString('test', $this->getContent()); + } +} diff --git a/tests/src/Core/Logger/AbstractLoggerTest.php b/tests/src/Core/Logger/AbstractLoggerTest.php deleted file mode 100644 index b1a793d41f..0000000000 --- a/tests/src/Core/Logger/AbstractLoggerTest.php +++ /dev/null @@ -1,185 +0,0 @@ -introspection = \Mockery::mock(Introspection::class); - $this->introspection->shouldReceive('getRecord')->andReturn([ - 'file' => self::FILE, - 'line' => self::LINE, - 'function' => self::FUNC - ]); - - $this->config = \Mockery::mock(IManageConfigValues::class); - } - - public function assertLogline($string) - { - self::assertMatchesRegularExpression(self::LOGLINE, $string); - } - - public function assertLoglineNums($assertNum, $string) - { - self::assertEquals($assertNum, preg_match_all(self::LOGLINE, $string)); - } - - /** - * Test if the logger works correctly - */ - public function testNormal() - { - $logger = $this->getInstance(); - $logger->emergency('working!'); - $logger->alert('working too!'); - $logger->debug('and now?'); - $logger->notice('message', ['an' => 'context']); - - $text = $this->getContent(); - self::assertLogline($text); - self::assertLoglineNums(4, $text); - } - - /** - * Test if a log entry is correctly interpolated - */ - public function testPsrInterpolate() - { - $logger = $this->getInstance(); - - $logger->emergency('A {psr} test', ['psr' => 'working']); - $logger->alert('An {array} test', ['array' => ['it', 'is', 'working']]); - $text = $this->getContent(); - self::assertStringContainsString('A working test', $text); - self::assertStringContainsString('An ["it","is","working"] test', $text); - } - - /** - * Test if a log entry contains all necessary information - */ - public function testContainsInformation() - { - $logger = $this->getInstance(); - $logger->emergency('A test'); - - $text = $this->getContent(); - self::assertStringContainsString('"file":"' . self::FILE . '"', $text); - self::assertStringContainsString('"line":' . self::LINE, $text); - self::assertStringContainsString('"function":"' . self::FUNC . '"', $text); - } - - /** - * Test if the minimum level is working - */ - public function testMinimumLevel() - { - $logger = $this->getInstance(LogLevel::NOTICE); - - $logger->emergency('working'); - $logger->alert('working'); - $logger->error('working'); - $logger->warning('working'); - $logger->notice('working'); - $logger->info('not working'); - $logger->debug('not working'); - - $text = $this->getContent(); - - self::assertLoglineNums(5, $text); - } - - /** - * Test with different logging data - * @dataProvider dataTests - */ - public function testDifferentTypes($function, $message, array $context) - { - $logger = $this->getInstance(); - $logger->$function($message, $context); - - $text = $this->getContent(); - - self::assertLogline($text); - - self::assertStringContainsString(@json_encode($context, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE), $text); - } - - /** - * Test a message with an exception - */ - public function testExceptionHandling() - { - $e = new \Exception("Test String", 123); - $eFollowUp = new \Exception("FollowUp", 456, $e); - - $assertion = $eFollowUp->__toString(); - - $logger = $this->getInstance(); - $logger->alert('test', ['e' => $eFollowUp]); - $text = $this->getContent(); - - self::assertLogline($text); - - self::assertStringContainsString(@json_encode($assertion, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE), $this->getContent()); - } - - public function testNoObjectHandling() - { - $logger = $this->getInstance(); - $logger->alert('test', ['e' => ['test' => 'test']]); - $text = $this->getContent(); - - self::assertLogline($text); - - self::assertStringContainsString('test', $this->getContent()); - } -} diff --git a/tests/src/Core/Logger/LoggerDataTrait.php b/tests/src/Core/Logger/LoggerDataTrait.php deleted file mode 100644 index dd41bf890d..0000000000 --- a/tests/src/Core/Logger/LoggerDataTrait.php +++ /dev/null @@ -1,57 +0,0 @@ - [ - 'function' => 'emergency', - 'message' => 'test', - 'context' => ['a' => 'context'], - ], - 'alert' => [ - 'function' => 'alert', - 'message' => 'test {test}', - 'context' => ['a' => 'context', 2 => 'so', 'test' => 'works'], - ], - 'critical' => [ - 'function' => 'critical', - 'message' => 'test crit 2345', - 'context' => ['a' => 'context', 'wit' => ['more', 'array']], - ], - 'error' => [ - 'function' => 'error', - 'message' => 2.554, - 'context' => [], - ], - 'warning' => [ - 'function' => 'warning', - 'message' => 'test warn', - 'context' => ['a' => 'context'], - ], - 'notice' => [ - 'function' => 'notice', - 'message' => 2346, - 'context' => ['a' => 'context'], - ], - 'info' => [ - 'function' => 'info', - 'message' => null, - 'context' => ['a' => 'context'], - ], - 'debug' => [ - 'function' => 'debug', - 'message' => true, - 'context' => ['a' => false], - ], - ]; - } -} diff --git a/tests/src/Core/Logger/ProfilerLoggerTest.php b/tests/src/Core/Logger/ProfilerLoggerTest.php index 9ae1d5b3ef..f137e8c7fa 100644 --- a/tests/src/Core/Logger/ProfilerLoggerTest.php +++ b/tests/src/Core/Logger/ProfilerLoggerTest.php @@ -8,6 +8,7 @@ namespace Friendica\Test\src\Core\Logger; use Friendica\Core\Logger\Type\ProfilerLogger; +use Friendica\Test\LoggerDataTrait; use Friendica\Test\MockedTestCase; use Friendica\Util\Profiler; use Mockery\MockInterface; diff --git a/tests/src/Core/Logger/StreamLoggerTest.php b/tests/src/Core/Logger/StreamLoggerTest.php index 9fbb6b631e..5d6dc84c44 100644 --- a/tests/src/Core/Logger/StreamLoggerTest.php +++ b/tests/src/Core/Logger/StreamLoggerTest.php @@ -9,13 +9,14 @@ namespace Friendica\Test\src\Core\Logger; use Friendica\Core\Logger\Exception\LoggerArgumentException; use Friendica\Core\Logger\Exception\LogLevelException; +use Friendica\Test\LoggerTestCase; use Friendica\Test\Util\VFSTrait; use Friendica\Core\Logger\Type\StreamLogger; use org\bovigo\vfs\vfsStream; use org\bovigo\vfs\vfsStreamFile; use Psr\Log\LogLevel; -class StreamLoggerTest extends AbstractLoggerTest +class StreamLoggerTest extends LoggerTestCase { use VFSTrait; diff --git a/tests/src/Core/Logger/SyslogLoggerTest.php b/tests/src/Core/Logger/SyslogLoggerTest.php index ca3267e165..ecdaf19e27 100644 --- a/tests/src/Core/Logger/SyslogLoggerTest.php +++ b/tests/src/Core/Logger/SyslogLoggerTest.php @@ -9,9 +9,10 @@ namespace Friendica\Test\src\Core\Logger; use Friendica\Core\Logger\Exception\LogLevelException; use Friendica\Core\Logger\Type\SyslogLogger; +use Friendica\Test\LoggerTestCase; use Psr\Log\LogLevel; -class SyslogLoggerTest extends AbstractLoggerTest +class SyslogLoggerTest extends LoggerTestCase { /** * @var SyslogLoggerWrapper