"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","message":"","context":{"test":"test"},"trace":{"file":"TestCase","line":1104}}'; $this->assertEquals($expectedJson, $serializedMessage); } public function testJsonStr(): void { $message = new Message(level: Level::Info, trace: debug_backtrace()[0], context: "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","message":"","context":"test","trace":{"file":"TestCase","line":1104}}'; $this->assertEquals($expectedJson, $serializedMessage); } public function testJsonFails(): void { $message = new Message(level: Level::Info, trace: debug_backtrace()[0], context: NAN); $format = Format::JSON; $serializedMessage = $format->serialize($message); $expectedJson = ""; $this->assertEquals($expectedJson, $serializedMessage); } public function testIntelliJ(): void { $message = new Message( level: Level::Info, trace: debug_backtrace()[0], content: "test", context: ["message" => "test"] ); $format = Format::IntelliJ; $serializedMessage = $format->serialize($message); $full_date = (new DateTime())->format("Y-m-d H:i:s"); $expected = "$full_date [1104] INFO - TestCase - test {\"message\":\"test\"}"; $this->assertEquals($expected, $serializedMessage); } public function testIntelliJStr(): void { $message = new Message( level: Level::Info, trace: debug_backtrace()[0], content: "hello world" ); $format = Format::IntelliJ; $serializedMessage = $format->serialize($message); $full_date = (new DateTime())->format("Y-m-d H:i:s"); $expected = "$full_date [1104] INFO - TestCase - hello world"; $this->assertEquals($expected, $serializedMessage); } public function testIntelliJContextStr(): void { $message = new Message( level: Level::Info, trace: debug_backtrace()[0], content: "hello world", context: "hello world" ); $format = Format::IntelliJ; $serializedMessage = $format->serialize($message); $full_date = (new DateTime())->format("Y-m-d H:i:s"); $expected = "$full_date [1104] INFO - TestCase - hello world \"hello world\""; $this->assertEquals($expected, $serializedMessage); } public function testIntelliJContextNumeric(): void { $message = new Message( level: Level::Info, trace: debug_backtrace()[0], content: "hello world", context: 123456789 ); $format = Format::IntelliJ; $serializedMessage = $format->serialize($message); $full_date = (new DateTime())->format("Y-m-d H:i:s"); $expected = "$full_date [1104] INFO - TestCase - hello world 123456789"; $this->assertEquals($expected, $serializedMessage); } public function testLaravel(): void { $message = new Message( level: Level::Info, trace: debug_backtrace()[0], content: "test", 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: test {\"message\":\"test\"}"; $this->assertEquals($expected, $serializedMessage); } public function testLaravelStr(): void { $message = new Message( level: Level::Info, trace: debug_backtrace()[0], content: "hello world" ); $format = Format::Laravel; $serializedMessage = $format->serialize($message); $full_date = (new DateTime())->format("Y-m-d H:i:s"); $expected = "[$full_date] TestCase.INFO: hello world"; $this->assertEquals($expected, $serializedMessage); } public function testLaravelContextStr(): void { $message = new Message( level: Level::Info, trace: debug_backtrace()[0], content: "hello world", context: "hello world" ); $format = Format::Laravel; $serializedMessage = $format->serialize($message); $full_date = (new DateTime())->format("Y-m-d H:i:s"); $expected = "[$full_date] TestCase.INFO: hello world \"hello world\""; $this->assertEquals($expected, $serializedMessage); } public function testLaravelContextNumeric(): void { $message = new Message( level: Level::Info, trace: debug_backtrace()[0], content: "hello world", context: 123456789 ); $format = Format::Laravel; $serializedMessage = $format->serialize($message); $full_date = (new DateTime())->format("Y-m-d H:i:s"); $expected = "[$full_date] TestCase.INFO: hello world 123456789"; $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); } public function testSymfonyStr(): 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], content: "hello world", context: "hello world" ); $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: hello world \"hello world\""; $this->assertEquals($expected, $serializedMessage); } public function testSymfonyNoContentOrContext(): 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: []); $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: []"; $this->assertEquals($expected, $serializedMessage); } public function testSymfonyNoContext(): 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]); $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:"; $this->assertEquals($expected, $serializedMessage); } }