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,17 @@ 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 ->assertEquals ($ createdAt , $ user1 ->created_at ->getTimestamp ());
1060
+ $ this ->assertEquals ($ createdAt , $ user1 ->updated_at ->getTimestamp ());
1056
1061
1062
+ Carbon::setTestNow ('2020-12-28 ' );
1057
1063
$ user2 = User::createOrFirst (
1058
1064
1059
1065
['name ' => 'John Doe ' , 'birthday ' => new DateTime ('1987-05-28 ' )],
@@ -1064,6 +1070,8 @@ public function testCreateOrFirst()
1064
1070
$ this ->assertNull ($ user2 ->name );
1065
1071
$ this ->assertNull ($ user2 ->birthday );
1066
1072
$ this ->assertFalse ($ user2 ->wasRecentlyCreated );
1073
+ $ this ->assertEquals ($ createdAt , $ user1 ->created_at ->getTimestamp ());
1074
+ $ this ->assertEquals ($ createdAt , $ user1 ->updated_at ->getTimestamp ());
1067
1075
1068
1076
$ user3 = User::createOrFirst (
1069
1077
@@ -1075,6 +1083,8 @@ public function testCreateOrFirst()
1075
1083
$ this ->assertSame ('Jane Doe ' , $ user3 ->name );
1076
1084
$ this ->assertEquals (new DateTime ('1987-05-28 ' ), $ user3 ->birthday );
1077
1085
$ this ->assertTrue ($ user3 ->wasRecentlyCreated );
1086
+ $ this ->assertEquals ($ createdAt , $ user1 ->created_at ->getTimestamp ());
1087
+ $ this ->assertEquals ($ createdAt , $ user1 ->updated_at ->getTimestamp ());
1078
1088
1079
1089
$ user4 = User::createOrFirst (
1080
1090
['name ' => 'Robert Doe ' ],
0 commit comments