Compare commits
	
		
			2 Commits
		
	
	
		
			48881ef4ed
			...
			22aa303311
		
	
	| Author | SHA1 | Date | 
|---|---|---|
|  | 22aa303311 | |
|  | f2fb583797 | 
|  | @ -121,6 +121,7 @@ class MemberRequest extends FormRequest | ||||||
|         $namiSync = $member->isDirty(Member::$namiFields); |         $namiSync = $member->isDirty(Member::$namiFields); | ||||||
| 
 | 
 | ||||||
|         $member->save(); |         $member->save(); | ||||||
|  |         $member->bankAccount->update($this->input('bank_account')); | ||||||
| 
 | 
 | ||||||
|         if ($this->input('has_nami') && null === $member->nami_id) { |         if ($this->input('has_nami') && null === $member->nami_id) { | ||||||
|             $this->storeFreshMemberInNami($member); |             $this->storeFreshMemberInNami($member); | ||||||
|  |  | ||||||
|  | @ -93,6 +93,11 @@ class MemberFactory extends Factory | ||||||
|         return $this->state(['nami_id' => $namiId]); |         return $this->state(['nami_id' => $namiId]); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     public function notInNami(): self | ||||||
|  |     { | ||||||
|  |         return $this->state(['nami_id' => null]); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     public function withBankAccount(BankAccountFactory $factory): self |     public function withBankAccount(BankAccountFactory $factory): self | ||||||
|     { |     { | ||||||
|         return $this->afterCreating(function ($member) use ($factory) { |         return $this->afterCreating(function ($member) use ($factory) { | ||||||
|  |  | ||||||
|  | @ -1,5 +1,6 @@ | ||||||
| <?php | <?php | ||||||
| 
 | 
 | ||||||
|  | use App\Member\Member; | ||||||
| use Illuminate\Database\Migrations\Migration; | use Illuminate\Database\Migrations\Migration; | ||||||
| use Illuminate\Database\Schema\Blueprint; | use Illuminate\Database\Schema\Blueprint; | ||||||
| use Illuminate\Support\Facades\Schema; | use Illuminate\Support\Facades\Schema; | ||||||
|  | @ -22,6 +23,10 @@ return new class extends Migration | ||||||
|             $table->string('account_number')->nullable(); |             $table->string('account_number')->nullable(); | ||||||
|             $table->timestamps(); |             $table->timestamps(); | ||||||
|         }); |         }); | ||||||
|  | 
 | ||||||
|  |         foreach (Member::get() as $member) { | ||||||
|  |             $member->bankAccount()->create([]); | ||||||
|  |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|  |  | ||||||
|  | @ -6,68 +6,95 @@ use App\Actions\PullMemberAction; | ||||||
| use App\Actions\PullMembershipsAction; | use App\Actions\PullMembershipsAction; | ||||||
| use App\Activity; | use App\Activity; | ||||||
| use App\Confession; | use App\Confession; | ||||||
| use App\Country; |  | ||||||
| use App\Fee; |  | ||||||
| use App\Group; | use App\Group; | ||||||
| use App\Member\Actions\NamiPutMemberAction; | use App\Member\Actions\NamiPutMemberAction; | ||||||
| use App\Member\Member; | use App\Member\Member; | ||||||
| use App\Nationality; |  | ||||||
| use App\Payment\Subscription; |  | ||||||
| use App\Subactivity; | use App\Subactivity; | ||||||
| use Illuminate\Foundation\Testing\DatabaseTransactions; | use Illuminate\Foundation\Testing\DatabaseTransactions; | ||||||
| use Illuminate\Support\Facades\Http; | use Illuminate\Support\Facades\Http; | ||||||
| use Tests\TestCase; | use Tests\RequestFactories\MemberUpdateRequestFactory; | ||||||
| use Zoomyboy\LaravelNami\Fakes\MemberFake; | use Zoomyboy\LaravelNami\Fakes\MemberFake; | ||||||
| 
 | 
 | ||||||
| class UpdateTest extends TestCase | uses(DatabaseTransactions::class); | ||||||
| { |  | ||||||
|     use DatabaseTransactions; |  | ||||||
| 
 | 
 | ||||||
|     public function testItRedirectsToMemberOverview(): void | function singleMemberUrl(int $gruppierungId, int $memberId): string | ||||||
|     { | { | ||||||
|  |     return "https://nami.dpsg.de/ica/rest/nami/mitglied/filtered-for-navigation/gruppierung/gruppierung/{$gruppierungId}/{$memberId}"; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | beforeEach(function () { | ||||||
|  |     Confession::factory()->create(['is_null' => true]); | ||||||
|  | }); | ||||||
|  | 
 | ||||||
|  | function fakeRequest(): void | ||||||
|  | { | ||||||
|  |     Http::fake(function ($request) { | ||||||
|  |         if ($request->url() === singleMemberUrl(10, 135) && 'GET' === $request->method()) { | ||||||
|  |             return Http::response('{ "success": true, "data": {"missingkey": "missingvalue", "kontoverbindung": {"a": "b"} } }', 200); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         if ($request->url() === singleMemberUrl(10, 135) && 'PUT' === $request->method() && 43 === $request['version']) { | ||||||
|  |             return Http::response('{ "success": false, "message": "Update nicht möglich. Der Datensatz wurde zwischenzeitlich verändert." }', 200); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         if ($request->url() === singleMemberUrl(10, 135) && 'PUT' === $request->method()) { | ||||||
|  |             return Http::response('{ "success": true, "data": { "version": 44 } }', 200); | ||||||
|  |         } | ||||||
|  |     }); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | function factory() | ||||||
|  | { | ||||||
|  |     return Member::factory() | ||||||
|  |         ->defaults() | ||||||
|  |         ->for(Group::factory()->state(['nami_id' => 10])) | ||||||
|  |         ->state(['nami_id' => 135]); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | it('calls put action', function () { | ||||||
|     $this->withoutExceptionHandling()->login()->loginNami(); |     $this->withoutExceptionHandling()->login()->loginNami(); | ||||||
|         $member = $this->member(); |     $member = factory()->create(); | ||||||
|         $this->fakeRequest(); |     fakeRequest(); | ||||||
|     NamiPutMemberAction::allowToRun(); |     NamiPutMemberAction::allowToRun(); | ||||||
| 
 | 
 | ||||||
|         $response = $this |     $this->patch("/member/{$member->id}", MemberUpdateRequestFactory::new()->create()); | ||||||
|             ->from("/member/{$member->id}") |  | ||||||
|             ->patch("/member/{$member->id}", array_merge($member->getAttributes(), ['has_nami' => true])); |  | ||||||
| 
 | 
 | ||||||
|         $response->assertRedirect('/member'); |  | ||||||
|     NamiPutMemberAction::spy()->shouldHaveReceived('handle')->withArgs( |     NamiPutMemberAction::spy()->shouldHaveReceived('handle')->withArgs( | ||||||
|         fn (Member $memberParam, ?Activity $activityParam, ?Subactivity $subactivityParam) => $memberParam->is($member) |         fn (Member $memberParam, ?Activity $activityParam, ?Subactivity $subactivityParam) => $memberParam->is($member) | ||||||
|             && null === $activityParam |             && null === $activityParam | ||||||
|             && null === $subactivityParam |             && null === $subactivityParam | ||||||
|     )->once(); |     )->once(); | ||||||
|     } | }); | ||||||
| 
 | 
 | ||||||
|     public function testItChecksVersion(): void | it('redirects to member overview', function () { | ||||||
|     { |  | ||||||
|         $this->login()->loginNami()->withoutExceptionHandling(); |  | ||||||
|         $member = $this->member(); |  | ||||||
|         $member->update(['version' => 43]); |  | ||||||
|         $this->fakeRequest(); |  | ||||||
| 
 |  | ||||||
|         $response = $this |  | ||||||
|             ->from("/member/{$member->id}") |  | ||||||
|             ->patch("/member/{$member->id}", array_merge($member->getAttributes(), ['has_nami' => true, 'firstname' => '::firstname::'])); |  | ||||||
| 
 |  | ||||||
|         $response->assertRedirect("/member/{$member->id}/edit?conflict=1"); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     public function testItUpdatesPhoneNumber(): void |  | ||||||
|     { |  | ||||||
|     $this->withoutExceptionHandling()->login()->loginNami(); |     $this->withoutExceptionHandling()->login()->loginNami(); | ||||||
|         $member = $this->member(); |     $member = factory()->create(); | ||||||
|         $this->fakeRequest(); |     fakeRequest(); | ||||||
|     NamiPutMemberAction::allowToRun(); |     NamiPutMemberAction::allowToRun(); | ||||||
| 
 | 
 | ||||||
|         $this->patch("/member/{$member->id}", array_merge($member->getAttributes(), [ |     $this->patch("/member/{$member->id}", MemberUpdateRequestFactory::new()->create()) | ||||||
|  |         ->assertRedirect('/member'); | ||||||
|  | }); | ||||||
|  | 
 | ||||||
|  | it('testItChecksVersion', function () { | ||||||
|  |     $this->login()->loginNami()->withoutExceptionHandling(); | ||||||
|  |     $member = tap(factory()->create(), fn ($member) => $member->update(['version' => 43])); | ||||||
|  |     fakeRequest(); | ||||||
|  | 
 | ||||||
|  |     $this->patch("/member/{$member->id}", array_merge($member->getAttributes(), MemberUpdateRequestFactory::new()->create())) | ||||||
|  |         ->assertRedirect("/member/{$member->id}/edit?conflict=1"); | ||||||
|  | }); | ||||||
|  | 
 | ||||||
|  | it('testItUpdatesPhoneNumber', function () { | ||||||
|  |     $this->withoutExceptionHandling()->login()->loginNami(); | ||||||
|  |     $member = factory()->create(); | ||||||
|  |     fakeRequest(); | ||||||
|  |     NamiPutMemberAction::allowToRun(); | ||||||
|  | 
 | ||||||
|  |     $this->patch("/member/{$member->id}", MemberUpdateRequestFactory::new()->create([ | ||||||
|         'main_phone' => '02103 4455129', |         'main_phone' => '02103 4455129', | ||||||
|         'fax' => '02103 4455130', |         'fax' => '02103 4455130', | ||||||
|         'children_phone' => '02103 4455130', |         'children_phone' => '02103 4455130', | ||||||
|             'has_nami' => true, |  | ||||||
|     ])); |     ])); | ||||||
| 
 | 
 | ||||||
|     $this->assertDatabaseHas('members', [ |     $this->assertDatabaseHas('members', [ | ||||||
|  | @ -75,60 +102,77 @@ class UpdateTest extends TestCase | ||||||
|         'fax' => '+49 2103 4455130', |         'fax' => '+49 2103 4455130', | ||||||
|         'children_phone' => '+49 2103 4455130', |         'children_phone' => '+49 2103 4455130', | ||||||
|     ]); |     ]); | ||||||
|     } | }); | ||||||
| 
 | 
 | ||||||
|     public function testItUpdatesWiederverwendenFlag(): void | it('testItUpdatesBankAccount', function () { | ||||||
|     { |  | ||||||
|     $this->withoutExceptionHandling()->login()->loginNami(); |     $this->withoutExceptionHandling()->login()->loginNami(); | ||||||
|         $member = $this->member(); |     $member = factory()->create(); | ||||||
|         $this->fakeRequest(); |     fakeRequest(); | ||||||
|     NamiPutMemberAction::allowToRun(); |     NamiPutMemberAction::allowToRun(); | ||||||
| 
 | 
 | ||||||
|         $this->patch("/member/{$member->id}", array_merge($member->getAttributes(), [ |     $this->patch("/member/{$member->id}", MemberUpdateRequestFactory::new()->create([ | ||||||
|  |         'bank_account' => [ | ||||||
|  |             'iban' => 'DE1122', | ||||||
|  |             'bic' => 'SOLSDE', | ||||||
|  |             'person' => 'Max' | ||||||
|  |         ] | ||||||
|  |     ])); | ||||||
|  | 
 | ||||||
|  |     $this->assertDatabaseHas('bank_accounts', [ | ||||||
|  |         'iban' => 'DE1122', | ||||||
|  |         'bic' => 'SOLSDE', | ||||||
|  |         'person' => 'Max', | ||||||
|  |         'member_id' => $member->id, | ||||||
|  |     ]); | ||||||
|  | }); | ||||||
|  | 
 | ||||||
|  | it('testItUpdatesWiederverwendenFlag', function () { | ||||||
|  |     $this->withoutExceptionHandling()->login()->loginNami(); | ||||||
|  |     $member = factory()->create(); | ||||||
|  |     fakeRequest(); | ||||||
|  |     NamiPutMemberAction::allowToRun(); | ||||||
|  | 
 | ||||||
|  |     $this->patch("/member/{$member->id}", MemberUpdateRequestFactory::new()->create([ | ||||||
|         'keepdata' => true, |         'keepdata' => true, | ||||||
|             'has_nami' => true, |  | ||||||
|     ])); |     ])); | ||||||
| 
 | 
 | ||||||
|     $this->assertDatabaseHas('members', [ |     $this->assertDatabaseHas('members', [ | ||||||
|         'keepdata' => true, |         'keepdata' => true, | ||||||
|     ]); |     ]); | ||||||
|     } | }); | ||||||
| 
 | 
 | ||||||
|     public function testItSetsLocationToNull(): void | it('testItSetsLocationToNull', function () { | ||||||
|     { |  | ||||||
|     $this->withoutExceptionHandling()->login()->loginNami(); |     $this->withoutExceptionHandling()->login()->loginNami(); | ||||||
|         $member = $this->member(['location' => 'Hilden', 'nami_id' => null]); |     $member = factory()->notInNami()->create(['location' => 'Hilden']); | ||||||
|         $this->fakeRequest(); |     fakeRequest(); | ||||||
|     NamiPutMemberAction::allowToRun(); |     NamiPutMemberAction::allowToRun(); | ||||||
| 
 | 
 | ||||||
|         $this->patch("/member/{$member->id}", array_merge($member->getAttributes(), [ |     $this->patch("/member/{$member->id}", MemberUpdateRequestFactory::new()->noNami()->create([ | ||||||
|         'location' => null, |         'location' => null, | ||||||
|  |         'bank_account' => [] | ||||||
|     ])); |     ])); | ||||||
| 
 | 
 | ||||||
|     $this->assertDatabaseHas('members', [ |     $this->assertDatabaseHas('members', [ | ||||||
|         'location' => null, |         'location' => null, | ||||||
|     ]); |     ]); | ||||||
|     } | }); | ||||||
| 
 | 
 | ||||||
|     public function testItUpdatesContact(): void | it('testItUpdatesContact', function () { | ||||||
|     { |  | ||||||
|     $this->withoutExceptionHandling()->login()->loginNami(); |     $this->withoutExceptionHandling()->login()->loginNami(); | ||||||
|         $member = $this->member(['nami_id' => null]); |     $member = factory()->notInNami()->create(); | ||||||
|         $this->fakeRequest(); |     fakeRequest(); | ||||||
| 
 | 
 | ||||||
|         $response = $this |     $this->patch("/member/{$member->id}", MemberUpdateRequestFactory::new()->noNami()->create([ | ||||||
|             ->from("/member/{$member->id}") |  | ||||||
|             ->patch("/member/{$member->id}", array_merge($member->getAttributes(), [ |  | ||||||
|         'other_country' => 'englisch', |         'other_country' => 'englisch', | ||||||
|  |         'bank_account' => [] | ||||||
|     ])); |     ])); | ||||||
| 
 | 
 | ||||||
|     $this->assertEquals('englisch', $member->fresh()->other_country); |     $this->assertEquals('englisch', $member->fresh()->other_country); | ||||||
|     } | }); | ||||||
| 
 | 
 | ||||||
|     public function testItCreatesMemberWithFirstActivityId(): void | it('testItCreatesMemberWithFirstActivityId', function () { | ||||||
|     { |  | ||||||
|     $this->login()->loginNami()->withoutExceptionHandling(); |     $this->login()->loginNami()->withoutExceptionHandling(); | ||||||
|         $member = Member::factory()->defaults()->create(); |     $member = factory()->new()->defaults()->create(); | ||||||
|     app(MemberFake::class)->stores($member->group->nami_id, 103); |     app(MemberFake::class)->stores($member->group->nami_id, 103); | ||||||
|     $activity = Activity::factory()->inNami(89)->create(); |     $activity = Activity::factory()->inNami(89)->create(); | ||||||
|     $subactivity = Subactivity::factory()->inNami(90)->create(); |     $subactivity = Subactivity::factory()->inNami(90)->create(); | ||||||
|  | @ -136,48 +180,41 @@ class UpdateTest extends TestCase | ||||||
|     PullMemberAction::shouldRun(); |     PullMemberAction::shouldRun(); | ||||||
|     PullMembershipsAction::shouldRun(); |     PullMembershipsAction::shouldRun(); | ||||||
| 
 | 
 | ||||||
|         $this->patch("/member/{$member->id}", [ |     $this->patch("/member/{$member->id}", MemberUpdateRequestFactory::new()->create([ | ||||||
|             ...$member->getAttributes(), |  | ||||||
|             'has_nami' => true, |  | ||||||
|         'first_activity_id' => $activity->id, |         'first_activity_id' => $activity->id, | ||||||
|         'first_subactivity_id' => $subactivity->id, |         'first_subactivity_id' => $subactivity->id, | ||||||
|         ])->assertSessionHasNoErrors(); |     ]))->assertSessionHasNoErrors(); | ||||||
| 
 | 
 | ||||||
|     app(MemberFake::class)->assertStored($member->group->nami_id, [ |     app(MemberFake::class)->assertStored($member->group->nami_id, [ | ||||||
|         'ersteTaetigkeitId' => 89, |         'ersteTaetigkeitId' => 89, | ||||||
|         'ersteUntergliederungId' => 90, |         'ersteUntergliederungId' => 90, | ||||||
|     ]); |     ]); | ||||||
|     } | }); | ||||||
| 
 | 
 | ||||||
|     public function testItRequiresFirstActivityId(): void | it('testItRequiresFirstActivityId', function () { | ||||||
|     { |  | ||||||
|     $this->login()->loginNami(); |     $this->login()->loginNami(); | ||||||
|         $member = Member::factory()->defaults()->create(); |     $member = factory()->new()->defaults()->create(); | ||||||
|     app(MemberFake::class)->stores($member->group->nami_id, 103); |     app(MemberFake::class)->stores($member->group->nami_id, 103); | ||||||
|     Confession::factory()->create(['is_null' => true]); |     Confession::factory()->create(['is_null' => true]); | ||||||
|     PullMemberAction::shouldRun(); |     PullMemberAction::shouldRun(); | ||||||
|     PullMembershipsAction::shouldRun(); |     PullMembershipsAction::shouldRun(); | ||||||
| 
 | 
 | ||||||
|         $this->patch("/member/{$member->id}", [ |     $this->patch("/member/{$member->id}", MemberUpdateRequestFactory::new()->create([ | ||||||
|             ...$member->getAttributes(), |  | ||||||
|             'has_nami' => true, |  | ||||||
|         'first_activity_id' => null, |         'first_activity_id' => null, | ||||||
|         'first_subactivity_id' => null, |         'first_subactivity_id' => null, | ||||||
|         ])->assertSessionHasErrors([ |     ]))->assertSessionHasErrors([ | ||||||
|         'first_activity_id' => 'Erste Tätigkeit ist erforderlich.', |         'first_activity_id' => 'Erste Tätigkeit ist erforderlich.', | ||||||
|         'first_subactivity_id' => 'Erste Untergliederung ist erforderlich.', |         'first_subactivity_id' => 'Erste Untergliederung ist erforderlich.', | ||||||
|     ]); |     ]); | ||||||
|     } | }); | ||||||
| 
 | 
 | ||||||
|     public function testItUpdatesCriminalRecord(): void | it('testItUpdatesCriminalRecord', function () { | ||||||
|     { |  | ||||||
|     $this->withoutExceptionHandling()->login()->loginNami(); |     $this->withoutExceptionHandling()->login()->loginNami(); | ||||||
|         $member = $this->member(['nami_id' => null]); |     $member = factory()->notInNami()->create(); | ||||||
|         $this->fakeRequest(); |     fakeRequest(); | ||||||
| 
 | 
 | ||||||
|         $response = $this |     $this | ||||||
|             ->from("/member/{$member->id}") |         ->patch("/member/{$member->id}", MemberUpdateRequestFactory::new()->noNami()->create([ | ||||||
|             ->patch("/member/{$member->id}", array_merge($member->getAttributes(), [ |  | ||||||
|             'ps_at' => '2021-02-01', |             'ps_at' => '2021-02-01', | ||||||
|             'more_ps_at' => '2021-02-02', |             'more_ps_at' => '2021-02-02', | ||||||
|             'has_svk' => true, |             'has_svk' => true, | ||||||
|  | @ -190,6 +227,7 @@ class UpdateTest extends TestCase | ||||||
|             'multiply_pv' => true, |             'multiply_pv' => true, | ||||||
|             'multiply_more_pv' => true, |             'multiply_more_pv' => true, | ||||||
|             'salutation' => 'Doktor', |             'salutation' => 'Doktor', | ||||||
|  |             'bank_account' => [] | ||||||
|         ])); |         ])); | ||||||
| 
 | 
 | ||||||
|     $this->assertEquals('2021-02-01', $member->fresh()->ps_at->format('Y-m-d')); |     $this->assertEquals('2021-02-01', $member->fresh()->ps_at->format('Y-m-d')); | ||||||
|  | @ -203,41 +241,4 @@ class UpdateTest extends TestCase | ||||||
|     $this->assertEquals('2021-02-05', $member->fresh()->without_efz_at->format('Y-m-d')); |     $this->assertEquals('2021-02-05', $member->fresh()->without_efz_at->format('Y-m-d')); | ||||||
|     $this->assertEquals('2021-02-08', $member->fresh()->recertified_at->format('Y-m-d')); |     $this->assertEquals('2021-02-08', $member->fresh()->recertified_at->format('Y-m-d')); | ||||||
|     $this->assertEquals('Doktor', $member->fresh()->salutation); |     $this->assertEquals('Doktor', $member->fresh()->salutation); | ||||||
|     } | }); | ||||||
| 
 |  | ||||||
|     /** |  | ||||||
|      * @param array<string, string|Activity|null> $overwrites |  | ||||||
|      */ |  | ||||||
|     private function member(array $overwrites = []): Member |  | ||||||
|     { |  | ||||||
|         return Member::factory() |  | ||||||
|             ->for(Group::factory()->state(['nami_id' => 10])) |  | ||||||
|             ->for(Confession::factory()) |  | ||||||
|             ->for(Nationality::factory()) |  | ||||||
|             ->for(Subscription::factory()->forFee()) |  | ||||||
|             ->for(Country::factory()) |  | ||||||
|             ->create(['nami_id' => 135, ...$overwrites]); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     private function fakeRequest(): void |  | ||||||
|     { |  | ||||||
|         Http::fake(function ($request) { |  | ||||||
|             if ($request->url() === $this->singleMemberUrl(10, 135) && 'GET' === $request->method()) { |  | ||||||
|                 return Http::response('{ "success": true, "data": {"missingkey": "missingvalue", "kontoverbindung": {"a": "b"} } }', 200); |  | ||||||
|             } |  | ||||||
| 
 |  | ||||||
|             if ($request->url() === $this->singleMemberUrl(10, 135) && 'PUT' === $request->method() && 43 === $request['version']) { |  | ||||||
|                 return Http::response('{ "success": false, "message": "Update nicht möglich. Der Datensatz wurde zwischenzeitlich verändert." }', 200); |  | ||||||
|             } |  | ||||||
| 
 |  | ||||||
|             if ($request->url() === $this->singleMemberUrl(10, 135) && 'PUT' === $request->method()) { |  | ||||||
|                 return Http::response('{ "success": true, "data": { "version": 44 } }', 200); |  | ||||||
|             } |  | ||||||
|         }); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     private function singleMemberUrl(int $gruppierungId, int $memberId): string |  | ||||||
|     { |  | ||||||
|         return "https://nami.dpsg.de/ica/rest/nami/mitglied/filtered-for-navigation/gruppierung/gruppierung/{$gruppierungId}/{$memberId}"; |  | ||||||
|     } |  | ||||||
| } |  | ||||||
|  |  | ||||||
|  | @ -2,6 +2,9 @@ | ||||||
| 
 | 
 | ||||||
| namespace Tests\RequestFactories; | namespace Tests\RequestFactories; | ||||||
| 
 | 
 | ||||||
|  | use App\Country; | ||||||
|  | use App\Nationality; | ||||||
|  | use App\Payment\Subscription; | ||||||
| use Worksome\RequestFactories\RequestFactory; | use Worksome\RequestFactories\RequestFactory; | ||||||
| 
 | 
 | ||||||
| class MemberRequestFactory extends RequestFactory | class MemberRequestFactory extends RequestFactory | ||||||
|  | @ -11,14 +14,18 @@ class MemberRequestFactory extends RequestFactory | ||||||
|      */ |      */ | ||||||
|     public function definition(): array |     public function definition(): array | ||||||
|     { |     { | ||||||
|  |         $country = Country::factory()->create(); | ||||||
|  |         $nationality = Nationality::factory()->create(); | ||||||
|  |         $subscription = Subscription::factory()->forFee()->create(); | ||||||
|  | 
 | ||||||
|         return [ |         return [ | ||||||
|             'address' => 'Bavert 50', |             'address' => 'Bavert 50', | ||||||
|             'birthday' => '2013-02-19', |             'birthday' => '2013-02-19', | ||||||
|             'children_phone' => '+49 123 44444', |             'children_phone' => '+49 176 70512778', | ||||||
|             'efz' => '', |             'efz' => '', | ||||||
|             'email' => '', |             'email' => '', | ||||||
|             'email_parents' => 'osloot@aol.com', |             'email_parents' => 'osloot@aol.com', | ||||||
|             'fax' => '+49 666', |             'fax' => '+49 212 4732223', | ||||||
|             'firstname' => 'Joe', |             'firstname' => 'Joe', | ||||||
|             'further_address' => '', |             'further_address' => '', | ||||||
|             'has_nami' => true, |             'has_nami' => true, | ||||||
|  | @ -28,8 +35,8 @@ class MemberRequestFactory extends RequestFactory | ||||||
|             'lastname' => 'Muster', |             'lastname' => 'Muster', | ||||||
|             'letter_address' => '', |             'letter_address' => '', | ||||||
|             'location' => 'Solingen', |             'location' => 'Solingen', | ||||||
|             'main_phone' => '+49 212 2334322', |             'main_phone' => '+49 212 337056', | ||||||
|             'mobile_phone' => '+49 157 53180451', |             'mobile_phone' => '+49 176 70512774', | ||||||
|             'more_ps_at' => '', |             'more_ps_at' => '', | ||||||
|             'multiply_more_pv' => false, |             'multiply_more_pv' => false, | ||||||
|             'multiply_pv' => false, |             'multiply_pv' => false, | ||||||
|  | @ -40,6 +47,13 @@ class MemberRequestFactory extends RequestFactory | ||||||
|             'without_efz_at' => '', |             'without_efz_at' => '', | ||||||
|             'work_phone' => '', |             'work_phone' => '', | ||||||
|             'zip' => '42719', |             'zip' => '42719', | ||||||
|  |             'bank_account' => [ | ||||||
|  |                 'iban' => '', | ||||||
|  |                 'bic' => '', | ||||||
|  |             ], | ||||||
|  |             'country_id' => $country->id, | ||||||
|  |             'nationality_id' => $nationality->id, | ||||||
|  |             'subscription_id' => $subscription->id, | ||||||
|         ]; |         ]; | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -3,58 +3,17 @@ | ||||||
| namespace Tests\RequestFactories; | namespace Tests\RequestFactories; | ||||||
| 
 | 
 | ||||||
| use App\Activity; | use App\Activity; | ||||||
| use App\Country; |  | ||||||
| use App\Nationality; |  | ||||||
| use App\Payment\Subscription; |  | ||||||
| use App\Subactivity; | use App\Subactivity; | ||||||
| use Worksome\RequestFactories\RequestFactory; |  | ||||||
| 
 | 
 | ||||||
| class MemberStoreRequestFactory extends RequestFactory | class MemberStoreRequestFactory extends MemberRequestFactory | ||||||
| { | { | ||||||
|     public function definition(): array |     public function definition(): array | ||||||
|     { |     { | ||||||
|         $country = Country::factory()->create(); |  | ||||||
|         $nationality = Nationality::factory()->create(); |  | ||||||
|         $subscription = Subscription::factory()->forFee()->create(); |  | ||||||
|         $activity = Activity::factory()->inNami(89)->create(); |         $activity = Activity::factory()->inNami(89)->create(); | ||||||
|         $subactivity = Subactivity::factory()->inNami(90)->create(); |         $subactivity = Subactivity::factory()->inNami(90)->create(); | ||||||
| 
 | 
 | ||||||
|         return [ |         return [ | ||||||
|             'bank_account' => [ |             ...parent::definition(), | ||||||
|                 'iban' => '', |  | ||||||
|                 'bic' => '', |  | ||||||
|             ], |  | ||||||
|             'address' => 'Bavert 50', |  | ||||||
|             'birthday' => '2013-02-19', |  | ||||||
|             'children_phone' => '+49 176 70512778', |  | ||||||
|             'efz' => '', |  | ||||||
|             'email' => '', |  | ||||||
|             'email_parents' => 'osloot@aol.com', |  | ||||||
|             'fax' => '+49 212 4732223', |  | ||||||
|             'firstname' => 'Joe', |  | ||||||
|             'further_address' => '', |  | ||||||
|             'has_nami' => true, |  | ||||||
|             'has_svk' => false, |  | ||||||
|             'has_vk' => false, |  | ||||||
|             'joined_at' => '2022-08-12', |  | ||||||
|             'lastname' => 'Muster', |  | ||||||
|             'letter_address' => '', |  | ||||||
|             'location' => 'Solingen', |  | ||||||
|             'main_phone' => '+49 212 337056', |  | ||||||
|             'mobile_phone' => '+49 176 70512774', |  | ||||||
|             'more_ps_at' => '', |  | ||||||
|             'multiply_more_pv' => false, |  | ||||||
|             'multiply_pv' => false, |  | ||||||
|             'other_country' => '', |  | ||||||
|             'ps_at' => '', |  | ||||||
|             'send_newspaper' => true, |  | ||||||
|             'without_education_at' => '', |  | ||||||
|             'without_efz_at' => '', |  | ||||||
|             'work_phone' => '', |  | ||||||
|             'zip' => '42719', |  | ||||||
|             'country_id' => $country->id, |  | ||||||
|             'nationality_id' => $nationality->id, |  | ||||||
|             'subscription_id' => $subscription->id, |  | ||||||
|             'first_activity_id' => $activity->id, |             'first_activity_id' => $activity->id, | ||||||
|             'first_subactivity_id' => $subactivity->id, |             'first_subactivity_id' => $subactivity->id, | ||||||
|         ]; |         ]; | ||||||
|  |  | ||||||
|  | @ -0,0 +1,11 @@ | ||||||
|  | <?php | ||||||
|  | 
 | ||||||
|  | namespace Tests\RequestFactories; | ||||||
|  | 
 | ||||||
|  | class MemberUpdateRequestFactory extends MemberRequestFactory | ||||||
|  | { | ||||||
|  |     public function noNami(): self | ||||||
|  |     { | ||||||
|  |         return $this->state(['has_nami' => false]); | ||||||
|  |     } | ||||||
|  | } | ||||||
		Loading…
	
		Reference in New Issue