@@ -21,11 +21,11 @@ public function testHandle($record, Breadcrumb $expectedBreadcrumb): void
2121 $ hub = $ this ->createMock (HubInterface::class);
2222 $ hub ->expects ($ this ->once ())
2323 ->method ('addBreadcrumb ' )
24- ->with ($ this ->callback (function (Breadcrumb $ breadcrumb ) use ($ expectedBreadcrumb, $ record ): bool {
24+ ->with ($ this ->callback (function (Breadcrumb $ breadcrumb ) use ($ expectedBreadcrumb ): bool {
2525 $ this ->assertSame ($ expectedBreadcrumb ->getMessage (), $ breadcrumb ->getMessage ());
2626 $ this ->assertSame ($ expectedBreadcrumb ->getLevel (), $ breadcrumb ->getLevel ());
2727 $ this ->assertSame ($ expectedBreadcrumb ->getType (), $ breadcrumb ->getType ());
28- $ this ->assertEquals (( float ) $ record [ ' datetime ' ]-> format ( ' U.u ' ), $ breadcrumb ->getTimestamp ());
28+ $ this ->assertEquals ($ expectedBreadcrumb -> getTimestamp ( ), $ breadcrumb ->getTimestamp ());
2929 $ this ->assertSame ($ expectedBreadcrumb ->getCategory (), $ breadcrumb ->getCategory ());
3030 $ this ->assertEquals ($ expectedBreadcrumb ->getMetadata (), $ breadcrumb ->getMetadata ());
3131
@@ -41,12 +41,15 @@ public function testHandle($record, Breadcrumb $expectedBreadcrumb): void
4141 */
4242 public static function handleDataProvider (): iterable
4343 {
44+ $ now = new \DateTimeImmutable ();
45+
4446 $ defaultBreadcrumb = new Breadcrumb (
4547 Breadcrumb::LEVEL_DEBUG ,
4648 Breadcrumb::TYPE_DEFAULT ,
4749 'channel.foo ' ,
4850 'foo bar ' ,
49- []
51+ [],
52+ (float ) $ now ->format ('U.u ' )
5053 );
5154
5255 $ levelsToBeTested = [
@@ -58,31 +61,46 @@ public static function handleDataProvider(): iterable
5861
5962 foreach ($ levelsToBeTested as $ loggerLevel => $ breadcrumbLevel ) {
6063 yield 'with level ' . Logger::getLevelName ($ loggerLevel ) => [
61- RecordFactory::create ('foo bar ' , $ loggerLevel , 'channel.foo ' , [], []),
64+ RecordFactory::create ('foo bar ' , $ loggerLevel , 'channel.foo ' , [], [], $ now ),
6265 $ defaultBreadcrumb ->withLevel ($ breadcrumbLevel ),
6366 ];
6467 }
6568
6669 yield 'with level ERROR ' => [
67- RecordFactory::create ('foo bar ' , Logger::ERROR , 'channel.foo ' , [], []),
70+ RecordFactory::create ('foo bar ' , Logger::ERROR , 'channel.foo ' , [], [], $ now ),
6871 $ defaultBreadcrumb ->withLevel (Breadcrumb::LEVEL_ERROR )
6972 ->withType (Breadcrumb::TYPE_ERROR ),
7073 ];
7174
7275 yield 'with level ALERT ' => [
73- RecordFactory::create ('foo bar ' , Logger::ALERT , 'channel.foo ' , [], []),
76+ RecordFactory::create ('foo bar ' , Logger::ALERT , 'channel.foo ' , [], [], $ now ),
7477 $ defaultBreadcrumb ->withLevel (Breadcrumb::LEVEL_FATAL )
7578 ->withType (Breadcrumb::TYPE_ERROR ),
7679 ];
7780
7881 yield 'with context ' => [
79- RecordFactory::create ('foo bar ' , Logger::DEBUG , 'channel.foo ' , ['context ' => ['foo ' => 'bar ' ]], []),
82+ RecordFactory::create ('foo bar ' , Logger::DEBUG , 'channel.foo ' , ['context ' => ['foo ' => 'bar ' ]], [], $ now ),
8083 $ defaultBreadcrumb ->withMetadata ('context ' , ['foo ' => 'bar ' ]),
8184 ];
8285
8386 yield 'with extra ' => [
84- RecordFactory::create ('foo bar ' , Logger::DEBUG , 'channel.foo ' , [], ['extra ' => ['foo ' => 'bar ' ]]),
87+ RecordFactory::create ('foo bar ' , Logger::DEBUG , 'channel.foo ' , [], ['extra ' => ['foo ' => 'bar ' ]], $ now ),
8588 $ defaultBreadcrumb ->withMetadata ('extra ' , ['foo ' => 'bar ' ]),
8689 ];
90+
91+ yield 'with timestamp ' => [
92+ RecordFactory::create ('foo bar ' , Logger::DEBUG , 'channel.foo ' , [], [], new \DateTimeImmutable ('1970-01-01 00:00:42.1337 UTC ' )),
93+ $ defaultBreadcrumb ->withTimestamp (42.1337 ),
94+ ];
95+
96+ yield 'with zero timestamp ' => [
97+ RecordFactory::create ('foo bar ' , Logger::DEBUG , 'channel.foo ' , [], [], new \DateTimeImmutable ('1970-01-01 00:00:00.000 UTC ' )),
98+ $ defaultBreadcrumb ->withTimestamp (0.0 ),
99+ ];
100+
101+ yield 'with negative timestamp ' => [
102+ RecordFactory::create ('foo bar ' , Logger::DEBUG , 'channel.foo ' , [], [], new \DateTimeImmutable ('1969-12-31 23:59:56.859 UTC ' )),
103+ $ defaultBreadcrumb ->withTimestamp (-3.141 ),
104+ ];
87105 }
88106}
0 commit comments