From ef973f128609c675ebc0c5a29f38a0650e3b396a Mon Sep 17 00:00:00 2001 From: philipp lang <philipp@aweos.de> Date: Sat, 17 Jul 2021 16:11:17 +0200 Subject: [PATCH] Add withPayments method --- database/factories/Member/MemberFactory.php | 12 ++++++++++++ tests/Feature/Pdf/GenerateTest.php | 7 +------ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/database/factories/Member/MemberFactory.php b/database/factories/Member/MemberFactory.php index e7fcbed7..3778ac05 100644 --- a/database/factories/Member/MemberFactory.php +++ b/database/factories/Member/MemberFactory.php @@ -7,6 +7,7 @@ use App\Fee; use App\Group; use App\Member\Member; use App\Nationality; +use App\Payment\Payment; use App\Payment\Subscription; use Illuminate\Database\Eloquent\Factories\Factory; @@ -60,4 +61,15 @@ class MemberFactory extends Factory ->for($subscription); } + public function withPayments(array $payments): self + { + return $this->afterCreating(function (Member $model) use ($payments): void { + foreach ($payments as $paymentClosure) { + $factory = Payment::factory()->for($model); + $factory = call_user_func($paymentClosure, $factory); + $factory->create(); + } + }); + } + } diff --git a/tests/Feature/Pdf/GenerateTest.php b/tests/Feature/Pdf/GenerateTest.php index 2edff6fa..537a41e9 100644 --- a/tests/Feature/Pdf/GenerateTest.php +++ b/tests/Feature/Pdf/GenerateTest.php @@ -140,16 +140,11 @@ class GenerateTest extends TestCase $memberFactory = Member::factory() ->for(Nationality::factory()) ->for(Subscription::factory()->for(Fee::factory())) + ->withPayments(data_get($member, 'payments', [])) ->forCountry(Country::find(5)) ->for(Group::factory()); $memberModel = call_user_func($member['factory'], $memberFactory)->create(); - foreach (data_get($member, 'payments', []) as $payment) { - $paymentFactory = Payment::factory()->for($memberModel); - $paymentFactory = call_user_func($payment, $paymentFactory); - $paymentFactory->create(); - } - return $memberModel->load('payments'); }); }