From 2f1d938a4483ee247b16a4ad5f5393c93a76fb02 Mon Sep 17 00:00:00 2001 From: Nikolaos Dimopoulos Date: Thu, 6 Dec 2018 14:43:38 -0500 Subject: [PATCH] [#13438] - More logger tests --- tests/unit/Logger/ConstructCest.php | 48 +++++++++++++++++++ .../unit/Logger/Formatter/Json/FormatCest.php | 11 +++-- .../Logger/Formatter/Json/InterpolateCest.php | 5 +- tests/unit/Logger/GetAdapterCest.php | 42 +++++++++++++++- tests/unit/Logger/GetAdaptersCest.php | 27 ++++++++++- 5 files changed, 125 insertions(+), 8 deletions(-) diff --git a/tests/unit/Logger/ConstructCest.php b/tests/unit/Logger/ConstructCest.php index 0210386974..5f11c0894f 100644 --- a/tests/unit/Logger/ConstructCest.php +++ b/tests/unit/Logger/ConstructCest.php @@ -13,6 +13,8 @@ namespace Phalcon\Test\Unit\Logger; use Phalcon\Logger; +use Phalcon\Logger\Adapter\File; +use Phalcon\Logger\Formatter\Json; use Phalcon\Test\Fixtures\Traits\LoggerTrait; use Psr\Log\LoggerInterface; use UnitTester; @@ -62,4 +64,50 @@ public function loggerConstructConstants(UnitTester $I) $I->assertEquals(4, Logger::WARNING); $I->assertEquals(8, Logger::CUSTOM); } + + /** + * Tests Phalcon\Logger :: __construct() - file with json formatter + * + * @param UnitTester $I + * + * @issue https://github.com/phalcon/cphalcon/issues/2262 + * + * @author Phalcon Team + * @since 2016-01-28 + */ + public function loggerConstructFileWithJsonConstants(UnitTester $I) + { + $I->wantToTest('Logger :: __construct() - file with json formatter'); + $fileName = $I->getNewFileName('log', 'log'); + $outputPath = outputFolder('tests/logs/'); + $adapter = new File($outputPath . $fileName); + $adapter->setFormatter(new Json()); + + $logger = new Logger( + 'my-logger', + [ + 'one' => $adapter, + ] + ); + + $time = time(); + $logger->debug('This is a message'); + $logger->log(Logger::ERROR, "This is an error"); + $logger->error("This is another error"); + + $I->amInPath($outputPath); + $I->openFile($fileName); + + $expected = sprintf( + '{"type":"debug","message":"This is a message","timestamp":"%s"}' . PHP_EOL . + '{"type":"error","message":"This is an error","timestamp":"%s"}' . PHP_EOL . + '{"type":"error","message":"This is another error","timestamp":"%s"}', + date('D, d M y H:i:s O', $time), + date('D, d M y H:i:s O', $time), + date('D, d M y H:i:s O', $time) + ); + + $I->seeInThisFile($expected); + $I->safeDeleteFile($outputPath . $fileName); + } } diff --git a/tests/unit/Logger/Formatter/Json/FormatCest.php b/tests/unit/Logger/Formatter/Json/FormatCest.php index 1630b5d5ff..d7b8a5841f 100644 --- a/tests/unit/Logger/Formatter/Json/FormatCest.php +++ b/tests/unit/Logger/Formatter/Json/FormatCest.php @@ -15,6 +15,7 @@ use Phalcon\Logger; use Phalcon\Logger\Formatter\Json; use Phalcon\Logger\Item; +use const PHP_EOL; use UnitTester; /** @@ -41,8 +42,9 @@ public function loggerFormatterJsonFormat(UnitTester $I) $item = new Item('log message', 'debug', Logger::DEBUG, $time); $expected = sprintf( - '{"type":"debug","message":"log message","timestamp":"%s"}', - date('D, d M y H:i:s O', $time) + '{"type":"debug","message":"log message","timestamp":"%s"}%s', + date('D, d M y H:i:s O', $time), + PHP_EOL ); $actual = $formatter->format($item); $I->assertEquals($expected, $actual); @@ -65,8 +67,9 @@ public function loggerFormatterJsonFormatCustom(UnitTester $I) $item = new Item('log message', 'debug', Logger::DEBUG, $time); $expected = sprintf( - '{"type":"debug","message":"log message","timestamp":"%s"}', - date('YmdHis', $time) + '{"type":"debug","message":"log message","timestamp":"%s"}%s', + date('YmdHis', $time), + PHP_EOL ); $actual = $formatter->format($item); $I->assertEquals($expected, $actual); diff --git a/tests/unit/Logger/Formatter/Json/InterpolateCest.php b/tests/unit/Logger/Formatter/Json/InterpolateCest.php index 5779770ebe..bdf9edc64c 100644 --- a/tests/unit/Logger/Formatter/Json/InterpolateCest.php +++ b/tests/unit/Logger/Formatter/Json/InterpolateCest.php @@ -69,8 +69,9 @@ public function loggerFormatterJsonInterpolateFormat(UnitTester $I) $item = new Item($message, 'debug', Logger::DEBUG, $time, $context); $expected = sprintf( - '{"type":"debug","message":"The sky is blue","timestamp":"%s"}', - date('D, d M y H:i:s O', $time) + '{"type":"debug","message":"The sky is blue","timestamp":"%s"}%s', + date('D, d M y H:i:s O', $time), + PHP_EOL ); $actual = $formatter->format($item); $I->assertEquals($expected, $actual); diff --git a/tests/unit/Logger/GetAdapterCest.php b/tests/unit/Logger/GetAdapterCest.php index 6bef93fb34..0f7e52456f 100644 --- a/tests/unit/Logger/GetAdapterCest.php +++ b/tests/unit/Logger/GetAdapterCest.php @@ -12,6 +12,9 @@ namespace Phalcon\Test\Unit\Logger; +use Phalcon\Logger; +use Phalcon\Logger\Exception; +use Phalcon\Logger\Adapter\File; use UnitTester; /** @@ -32,6 +35,43 @@ class GetAdapterCest public function loggerGetAdapter(UnitTester $I) { $I->wantToTest('Logger - getAdapter()'); - $I->skipTest('Need implementation'); + $fileName1 = $I->getNewFileName('log', 'log'); + $outputPath = outputFolder('tests/logs/'); + $adapter1 = new File($outputPath . $fileName1); + + $logger = new Logger( + 'my-logger', + [ + 'one' => $adapter1, + ] + ); + + + $class = File::class; + $actual = $logger->getAdapter('one'); + $I->assertInstanceOf($class, $actual); + + $I->safeDeleteFile($outputPath . $fileName1); + } + + /** + * Tests Phalcon\Logger :: getAdapter() - unknown + * + * @param UnitTester $I + * + * @author Phalcon Team + * @since 2018-11-13 + */ + public function loggerGetAdapterUnknown(UnitTester $I) + { + $I->wantToTest('Logger - getAdapter() - unknown'); + + $I->expectThrowable( + new Exception('Adapter does not exist for this logger'), + function () { + $logger = new Logger('my-logger'); + $logger->getAdapter('unknown'); + } + ); } } diff --git a/tests/unit/Logger/GetAdaptersCest.php b/tests/unit/Logger/GetAdaptersCest.php index c46d127748..16361bd617 100644 --- a/tests/unit/Logger/GetAdaptersCest.php +++ b/tests/unit/Logger/GetAdaptersCest.php @@ -12,6 +12,8 @@ namespace Phalcon\Test\Unit\Logger; +use Phalcon\Logger; +use Phalcon\Logger\Adapter\File; use UnitTester; /** @@ -32,6 +34,29 @@ class GetAdaptersCest public function loggerGetAdapters(UnitTester $I) { $I->wantToTest('Logger - getAdapters()'); - $I->skipTest('Need implementation'); + $fileName1 = $I->getNewFileName('log', 'log'); + $fileName2 = $I->getNewFileName('log', 'log'); + $outputPath = outputFolder('tests/logs/'); + $adapter1 = new File($outputPath . $fileName1); + $adapter2 = new File($outputPath . $fileName2); + + $logger = new Logger( + 'my-logger', + [ + 'one' => $adapter1, + 'two' => $adapter2, + ] + ); + + $expected = 2; + $adapters = $logger->getAdapters(); + $I->assertCount($expected, $adapters); + + $class = File::class; + $I->assertInstanceOf($class, $adapters['one']); + $I->assertInstanceOf($class, $adapters['two']); + + $I->safeDeleteFile($outputPath . $fileName1); + $I->safeDeleteFile($outputPath . $fileName2); } }