33namespace LdapRecord \Tests \Unit \Models \Attributes ;
44
55use DateTime ;
6+ use DateTimeZone ;
67use LdapRecord \LdapRecordException ;
78use LdapRecord \Models \Attributes \Timestamp ;
89use LdapRecord \Tests \TestCase ;
@@ -11,7 +12,9 @@ class TimestampTest extends TestCase
1112{
1213 protected int $ unixTimestamp = 1601605329 ;
1314
14- protected string $ utcLdapTimestamp = '20201002021244Z ' ;
15+ protected string $ utcLdapTimestamp = '20201002021240Z ' ;
16+
17+ protected string $ utcLdapMillisecondsTimestamp = '20231106080944.000Z ' ;
1518
1619 protected string $ offsetLdapTimestamp = '20201002021244-0500 ' ;
1720
@@ -44,7 +47,7 @@ public function test_dates_can_be_converted_to_ldap_type()
4447 $ date = new DateTime ;
4548 $ this ->assertEquals ($ date ->format ('YmdHis\Z ' ), $ timestamp ->fromDateTime ($ date ));
4649
47- $ date = (new DateTime )->setTimezone (new \ DateTimeZone ('EST ' ));
50+ $ date = (new DateTime )->setTimezone (new DateTimeZone ('EST ' ));
4851 $ this ->assertEquals ($ date ->format ('YmdHis ' ).'-0500 ' , $ timestamp ->fromDateTime ($ date ));
4952 }
5053
@@ -55,7 +58,7 @@ public function test_dates_can_be_converted_to_windows_type()
5558 $ date = new DateTime ;
5659 $ this ->assertEquals ($ date ->format ('YmdHis.0\Z ' ), $ timestamp ->fromDateTime ($ date ));
5760
58- $ date = (new DateTime )->setTimezone (new \ DateTimeZone ('EST ' ));
61+ $ date = (new DateTime )->setTimezone (new DateTimeZone ('EST ' ));
5962 $ this ->assertEquals ($ date ->format ('YmdHis.0 ' ).'-0500 ' , $ timestamp ->fromDateTime ($ date ));
6063 }
6164
@@ -76,13 +79,17 @@ public function test_ldap_type_can_be_converted_to_date()
7679
7780 $ this ->assertInstanceOf (DateTime::class, $ datetime );
7881 $ this ->assertEquals ('UTC ' , $ datetime ->timezone ->getName ());
79- $ this ->assertEquals ('Fri Oct 02 2020 02:12:44 GMT+0000 ' , $ datetime ->toString ());
82+ $ this ->assertEquals ('Fri Oct 02 2020 02:12:40 GMT+0000 ' , $ datetime ->toString ());
8083
8184 $ datetime = $ timestamp ->toDateTime ($ this ->offsetLdapTimestamp );
8285
8386 $ this ->assertInstanceOf (DateTime::class, $ datetime );
8487 $ this ->assertEquals ('-05:00 ' , $ datetime ->timezone ->getName ());
8588 $ this ->assertEquals ('Fri Oct 02 2020 02:12:44 GMT-0500 ' , $ datetime ->toString ());
89+
90+ $ datetime = $ timestamp ->toDateTime ($ this ->utcLdapMillisecondsTimestamp );
91+ $ this ->assertEquals ('UTC ' , $ datetime ->timezone ->getName ());
92+ $ this ->assertEquals ('Mon Nov 06 2023 08:09:44 GMT+0000 ' , $ datetime ->toString ());
8693 }
8794
8895 public function test_windows_type_can_be_converted_to_date ()
0 commit comments