6
6
7
7
use Carbon \Carbon ;
8
8
use DateTime ;
9
+ use DateTimeInterface ;
9
10
use Generator ;
10
11
use Illuminate \Database \Eloquent \Collection as EloquentCollection ;
11
12
use Illuminate \Database \Eloquent \ModelNotFoundException ;
@@ -1048,12 +1049,19 @@ public function testNumericFieldName(): void
1048
1049
1049
1050
public function testCreateOrFirst ()
1050
1051
{
1052
+ Carbon::setTestNow ('2010-06-22 ' );
1053
+ $ createdAt = Carbon::now ()->getTimestamp ();
1051
1054
$ user1 = User::
createOrFirst ([
'email ' =>
'[email protected] ' ]);
1052
1055
1053
1056
$ this ->
assertSame (
'[email protected] ' ,
$ user1->
email );
1054
1057
$ this ->assertNull ($ user1 ->name );
1055
1058
$ this ->assertTrue ($ user1 ->wasRecentlyCreated );
1059
+ $ this ->assertInstanceOf (DateTimeInterface::class, $ user1 ->created_at );
1060
+ $ this ->assertInstanceOf (DateTimeInterface::class, $ user1 ->updated_at );
1061
+ $ this ->assertEquals ($ createdAt , $ user1 ->created_at ->getTimestamp ());
1062
+ $ this ->assertEquals ($ createdAt , $ user1 ->updated_at ->getTimestamp ());
1056
1063
1064
+ Carbon::setTestNow ('2020-12-28 ' );
1057
1065
$ user2 = User::createOrFirst (
1058
1066
1059
1067
['name ' => 'John Doe ' , 'birthday ' => new DateTime ('1987-05-28 ' )],
@@ -1064,6 +1072,10 @@ public function testCreateOrFirst()
1064
1072
$ this ->assertNull ($ user2 ->name );
1065
1073
$ this ->assertNull ($ user2 ->birthday );
1066
1074
$ this ->assertFalse ($ user2 ->wasRecentlyCreated );
1075
+ $ this ->assertInstanceOf (DateTimeInterface::class, $ user2 ->created_at );
1076
+ $ this ->assertInstanceOf (DateTimeInterface::class, $ user2 ->updated_at );
1077
+ $ this ->assertEquals ($ createdAt , $ user1 ->created_at ->getTimestamp ());
1078
+ $ this ->assertEquals ($ createdAt , $ user1 ->updated_at ->getTimestamp ());
1067
1079
1068
1080
$ user3 = User::createOrFirst (
1069
1081
@@ -1075,6 +1087,10 @@ public function testCreateOrFirst()
1075
1087
$ this ->assertSame ('Jane Doe ' , $ user3 ->name );
1076
1088
$ this ->assertEquals (new DateTime ('1987-05-28 ' ), $ user3 ->birthday );
1077
1089
$ this ->assertTrue ($ user3 ->wasRecentlyCreated );
1090
+ $ this ->assertInstanceOf (DateTimeInterface::class, $ user3 ->created_at );
1091
+ $ this ->assertInstanceOf (DateTimeInterface::class, $ user3 ->updated_at );
1092
+ $ this ->assertEquals ($ createdAt , $ user1 ->created_at ->getTimestamp ());
1093
+ $ this ->assertEquals ($ createdAt , $ user1 ->updated_at ->getTimestamp ());
1078
1094
1079
1095
$ user4 = User::createOrFirst (
1080
1096
['name ' => 'Robert Doe ' ],
0 commit comments