From b9cb7d57fdea7246f536204fd0f267380434aa09 Mon Sep 17 00:00:00 2001 From: Igor Scheller Date: Tue, 16 Jul 2019 02:59:33 +0200 Subject: Basic coverage tests of logger classes for 100% unit tests coverage --- tests/Unit/Logger/EngelsystemLoggerTest.php | 72 +++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 tests/Unit/Logger/EngelsystemLoggerTest.php (limited to 'tests/Unit/Logger/EngelsystemLoggerTest.php') diff --git a/tests/Unit/Logger/EngelsystemLoggerTest.php b/tests/Unit/Logger/EngelsystemLoggerTest.php new file mode 100644 index 00000000..0f4c8c32 --- /dev/null +++ b/tests/Unit/Logger/EngelsystemLoggerTest.php @@ -0,0 +1,72 @@ +createMock(LogEntry::class); + $logEntry->expects($this->once()) + ->method('create') + ->with(['level' => LogLevel::INFO, 'message' => 'I\'m an information!']); + + $logger = new EngelsystemLogger($logEntry); + + $logger->log(LogLevel::INFO, 'I\'m an information!'); + } + + /** + * @covers \Engelsystem\Logger\EngelsystemLogger::log + * @covers \Engelsystem\Logger\EngelsystemLogger::checkLevel + */ + public function testCheckLevel() + { + /** @var LogEntry|MockObject $logEntry */ + $logEntry = $this->createMock(LogEntry::class); + $logger = new EngelsystemLogger($logEntry); + + $this->expectException(InvalidArgumentException::class); + $logger->log('FooBar', 'Random Stuff'); + } + + /** + * @covers \Engelsystem\Logger\EngelsystemLogger::interpolate + */ + public function testInterpolate() + { + /** @var LogEntry|MockObject $logEntry */ + $logEntry = $this->createMock(LogEntry::class); + $logEntry->expects($this->exactly(3)) + ->method('create') + ->withConsecutive( + [['level' => LogLevel::DEBUG, 'message' => 'User: Foo']], + [['level' => LogLevel::NOTICE, 'message' => 'User: {user}']], + [['level' => LogLevel::NOTICE, 'message' => 'User: Bar']] + ); + + $logger = new EngelsystemLogger($logEntry); + + $logger->log(LogLevel::DEBUG, 'User: {user}', ['user' => 'Foo']); + $logger->log(LogLevel::NOTICE, 'User: {user}', ['user' => ['name' => 'Lorem']]); + $logger->log(LogLevel::NOTICE, 'User: {user}', [ + 'user' => + new class + { + public function __toString() { return 'Bar'; } + } + ]); + } +} -- cgit v1.2.3-54-g00ecf