diff options
| author | Asko Nõmm <asko@nth.ee> | 2024-11-11 17:55:31 +0200 |
|---|---|---|
| committer | Asko Nõmm <asko@nth.ee> | 2024-11-11 17:55:31 +0200 |
| commit | 1da334065354208f969026fb6be15c0f4294ddb8 (patch) | |
| tree | 5327fcb6cb1c5d7ccc1bfead53d6073894a17b42 /tests | |
| parent | 6e01b0239518a10539c431574c3ec3b29d0be35c (diff) | |
Test Format enum methods and do not throw Loggr when driver of format is not set, instead silently fail into `$this->error`.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/FormatTest.php | 80 | ||||
| -rw-r--r-- | tests/LoggrTest.php | 4 |
2 files changed, 82 insertions, 2 deletions
diff --git a/tests/FormatTest.php b/tests/FormatTest.php new file mode 100644 index 0000000..2c9679d --- /dev/null +++ b/tests/FormatTest.php @@ -0,0 +1,80 @@ +<?php + +namespace Asko\Loggr\Tests; + +use Asko\Loggr\Format; +use Asko\Loggr\Level; +use Asko\Loggr\Message; +use DateTime; +use Mockery; +use Mockery\Adapter\Phpunit\MockeryTestCase; + +class FormatTest extends MockeryTestCase +{ + public function testJson(): void + { + $message = new Message( + level: Level::Info, + trace: debug_backtrace()[0], + context: ['message' => 'test'], + ); + + $format = Format::JSON; + $serializedMessage = $format->serialize($message); + $full_date = (new DateTime())->format('Y-m-d H:i:s'); + $expectedJson = '{"date":"' . $full_date . '","level":"INFO","context":{"message":"test"},"trace":{"file":"TestCase","line":1182}}'; + + $this->assertEquals($expectedJson, $serializedMessage); + } + + public function testIntelliJ(): void + { + $message = new Message( + level: Level::Info, + trace: debug_backtrace()[0], + context: ['message' => 'test'], + ); + + $format = Format::IntelliJ; + $serializedMessage = $format->serialize($message); + $full_date = (new DateTime())->format('Y-m-d H:i:s'); + $expected = "{$full_date} [1182] INFO - TestCase - {\"message\":\"test\"}"; + + $this->assertEquals($expected, $serializedMessage); + } + + public function testLaravel(): void + { + $message = new Message( + level: Level::Info, + trace: debug_backtrace()[0], + context: ['message' => 'test'], + ); + + $format = Format::Laravel; + $serializedMessage = $format->serialize($message); + $full_date = (new DateTime())->format('Y-m-d H:i:s'); + $expected = "[{$full_date}] TestCase.INFO: {\"message\":\"test\"}"; + + $this->assertEquals($expected, $serializedMessage); + } + + public function testSymfony(): void + { + $mock_datetime = Mockery::mock('DateTime'); + $mock_datetime->shouldReceive('format')->andReturn('2020-01-01T00:00:00.000000P'); + + $message = new Message( + level: Level::Info, + trace: debug_backtrace()[0], + context: ['message' => 'test'], + ); + + $format = Format::Symfony; + $serializedMessage = $format->serialize($message, $mock_datetime); + $full_date = $mock_datetime->format('Y-m-d\TH:i:s.uP'); + $expected = "[$full_date] TestCase.INFO: {\"message\":\"test\"}"; + + $this->assertEquals($expected, $serializedMessage); + } +}
\ No newline at end of file diff --git a/tests/LoggrTest.php b/tests/LoggrTest.php index 4abae86..eb2f5ab 100644 --- a/tests/LoggrTest.php +++ b/tests/LoggrTest.php @@ -13,9 +13,9 @@ class LoggrTest extends TestCase */ public function testNoDriver(): void { - $this->expectExceptionMessage('No driver has been set.'); $loggr = new Loggr(); $loggr->info('test'); + $this->assertEquals("Driver or format not set.", $loggr->error); } /** @@ -23,9 +23,9 @@ class LoggrTest extends TestCase */ public function testNoFormat(): void { - $this->expectExceptionMessage('No format has been set.'); $loggr = new Loggr(new OutputDriver()); $loggr->format = null; $loggr->info('test'); + $this->assertEquals("Driver or format not set.", $loggr->error); } }
\ No newline at end of file |
