@@ -653,6 +653,56 @@ public function testNestedMixedEmbeds()
653
653
$ this ->assertEquals ('Steve Doe ' , $ user ->father ->name );
654
654
}
655
655
656
+ public function testNestedEmbedsOneDelete ()
657
+ {
658
+ $ user = User::create (['name ' => 'John Doe ' ]);
659
+ $ father = $ user ->father ()->create (['name ' => 'Mark Doe ' ]);
660
+ $ grandfather = $ father ->father ()->create (['name ' => 'Steve Doe ' ]);
661
+ $ greatgrandfather = $ grandfather ->father ()->create (['name ' => 'Tom Doe ' ]);
662
+
663
+ $ grandfather ->delete ();
664
+
665
+ $ this ->assertNull ($ user ->father ->father );
666
+
667
+ $ user = User::where (['name ' => 'John Doe ' ])->first ();
668
+ $ this ->assertNull ($ user ->father ->father );
669
+ }
670
+
671
+ public function testNestedEmbedsManyDelete ()
672
+ {
673
+ $ user = User::create (['name ' => 'John Doe ' ]);
674
+ $ country = $ user ->addresses ()->create (['country ' => 'France ' ]);
675
+ $ city1 = $ country ->addresses ()->create (['city ' => 'Paris ' ]);
676
+ $ city2 = $ country ->addresses ()->create (['city ' => 'Nice ' ]);
677
+ $ city3 = $ country ->addresses ()->create (['city ' => 'Lyon ' ]);
678
+
679
+ $ city2 ->delete ();
680
+
681
+ $ this ->assertEquals (2 , $ user ->addresses ()->first ()->addresses ()->count ());
682
+ $ this ->assertEquals ('Lyon ' , $ country ->addresses ()->last ()->city );
683
+
684
+ $ user = User::where ('name ' , 'John Doe ' )->first ();
685
+ $ this ->assertEquals (2 , $ user ->addresses ()->first ()->addresses ()->count ());
686
+ $ this ->assertEquals ('Lyon ' , $ country ->addresses ()->last ()->city );
687
+ }
688
+
689
+ public function testNestedMixedEmbedsDelete ()
690
+ {
691
+ $ user = User::create (['name ' => 'John Doe ' ]);
692
+ $ father = $ user ->father ()->create (['name ' => 'Mark Doe ' ]);
693
+ $ country1 = $ father ->addresses ()->create (['country ' => 'France ' ]);
694
+ $ country2 = $ father ->addresses ()->create (['country ' => 'Belgium ' ]);
695
+
696
+ $ country1 ->delete ();
697
+
698
+ $ this ->assertEquals (1 , $ user ->father ->addresses ()->count ());
699
+ $ this ->assertEquals ('Belgium ' , $ user ->father ->addresses ()->last ()->country );
700
+
701
+ $ user = User::where ('name ' , 'John Doe ' )->first ();
702
+ $ this ->assertEquals (1 , $ user ->father ->addresses ()->count ());
703
+ $ this ->assertEquals ('Belgium ' , $ user ->father ->addresses ()->last ()->country );
704
+ }
705
+
656
706
public function testDoubleAssociate ()
657
707
{
658
708
$ user = User::create (['name ' => 'John Doe ' ]);
0 commit comments