From 1da334065354208f969026fb6be15c0f4294ddb8 Mon Sep 17 00:00:00 2001 From: Asko Nõmm Date: Mon, 11 Nov 2024 17:55:31 +0200 Subject: Test Format enum methods and do not throw Loggr when driver of format is not set, instead silently fail into `$this->error`. --- tests/FormatTest.php | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 tests/FormatTest.php (limited to 'tests/FormatTest.php') 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 @@ + '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 -- cgit v1.2.3