10
10
use Mockery ;
11
11
use MongoDB \BSON \ObjectId ;
12
12
use MongoDB \Laravel \Tests \Models \Address ;
13
- use MongoDB \Laravel \Tests \Models \Book ;
14
- use MongoDB \Laravel \Tests \Models \Client ;
15
- use MongoDB \Laravel \Tests \Models \Group ;
16
- use MongoDB \Laravel \Tests \Models \Item ;
17
- use MongoDB \Laravel \Tests \Models \Photo ;
18
- use MongoDB \Laravel \Tests \Models \Role ;
19
13
use MongoDB \Laravel \Tests \Models \User ;
20
14
21
15
use function array_merge ;
@@ -25,14 +19,7 @@ class EmbeddedRelationsTest extends TestCase
25
19
public function tearDown (): void
26
20
{
27
21
Mockery::close ();
28
-
29
22
User::truncate ();
30
- Book::truncate ();
31
- Item::truncate ();
32
- Role::truncate ();
33
- Client::truncate ();
34
- Group::truncate ();
35
- Photo::truncate ();
36
23
}
37
24
38
25
public function testEmbedsManySave ()
@@ -951,4 +938,36 @@ public function testGetQueueableRelationsEmbedsOne()
951
938
$ this ->assertEquals (['father ' ], $ user ->getQueueableRelations ());
952
939
$ this ->assertEquals ([], $ user ->father ->getQueueableRelations ());
953
940
}
941
+
942
+ public function testUnsetPropertyOnEmbed ()
943
+ {
944
+ $ user = User::create (['name ' => 'John Doe ' ]);
945
+ $ user ->addresses ()->save (new Address (['city ' => 'New York ' ]));
946
+ $ user ->addresses ()->save (new Address (['city ' => 'Tokyo ' ]));
947
+
948
+ // Set property
949
+ $ user ->addresses ->first ()->city = 'Paris ' ;
950
+ $ user ->addresses ->first ()->save ();
951
+
952
+ $ user = User::where ('name ' , 'John Doe ' )->first ();
953
+ $ this ->assertSame ('Paris ' , $ user ->addresses ->get (0 )->city );
954
+ $ this ->assertSame ('Tokyo ' , $ user ->addresses ->get (1 )->city );
955
+
956
+ // Unset property
957
+ unset($ user ->addresses ->first ()->city );
958
+ $ user ->addresses ->first ()->save ();
959
+
960
+ $ user = User::where ('name ' , 'John Doe ' )->first ();
961
+ $ this ->assertNull ($ user ->addresses ->get (0 )->city );
962
+ $ this ->assertSame ('Tokyo ' , $ user ->addresses ->get (1 )->city );
963
+
964
+ // Unset and reset property
965
+ unset($ user ->addresses ->get (1 )->city );
966
+ $ user ->addresses ->get (1 )->city = 'Kyoto ' ;
967
+ $ user ->addresses ->get (1 )->save ();
968
+
969
+ $ user = User::where ('name ' , 'John Doe ' )->first ();
970
+ $ this ->assertNull ($ user ->addresses ->get (0 )->city );
971
+ $ this ->assertSame ('Kyoto ' , $ user ->addresses ->get (1 )->city );
972
+ }
954
973
}
0 commit comments