diff --git a/app/User.php b/app/User.php index cfdf3e2..17a63c9 100644 --- a/app/User.php +++ b/app/User.php @@ -179,10 +179,10 @@ class User extends Authenticatable public function marriages() { if ($this->gender_id == 1) { - return $this->hasMany(Couple::class, 'husband_id'); + return $this->hasMany(Couple::class, 'husband_id')->orderBy('marriage_date'); } - return $this->hasMany(Couple::class, 'wife_id'); + return $this->hasMany(Couple::class, 'wife_id')->orderBy('marriage_date'); } public function siblings() diff --git a/tests/Unit/UserTest.php b/tests/Unit/UserTest.php index f9848ec..0908055 100644 --- a/tests/Unit/UserTest.php +++ b/tests/Unit/UserTest.php @@ -47,6 +47,34 @@ class UserTest extends TestCase } /** @test */ + public function male_person_marriages_ordered_by_marriage_date() + { + $husband = factory(User::class)->states('male')->create(); + $wife1 = factory(User::class)->states('female')->create(); + $wife2 = factory(User::class)->states('female')->create(); + $husband->addWife($wife1, '1990-02-13'); + $husband->addWife($wife2, '1999-04-21'); + + $marriages = $husband->fresh()->marriages; + $this->assertEquals('1990-02-13', $marriages->first()->marriage_date); + $this->assertEquals('1999-04-21', $marriages->last()->marriage_date); + } + + /** @test */ + public function female_person_marriages_ordered_by_marriage_date() + { + $wife = factory(User::class)->states('female')->create(); + $husband1 = factory(User::class)->states('male')->create(); + $husband2 = factory(User::class)->states('male')->create(); + $wife->addHusband($husband1, '1980-02-13'); + $wife->addHusband($husband2, '1989-04-21'); + + $marriages = $wife->fresh()->marriages; + $this->assertEquals('1980-02-13', $marriages->first()->marriage_date); + $this->assertEquals('1989-04-21', $marriages->last()->marriage_date); + } + + /** @test */ public function user_can_ony_marry_same_person_once() { $husband = factory(User::class)->states('male')->create();