Add: Fetch Bank account data from member
This commit is contained in:
parent
8adf858abc
commit
9e74212d84
|
@ -0,0 +1,30 @@
|
|||
<?php
|
||||
|
||||
namespace Zoomyboy\LaravelNami\Data;
|
||||
|
||||
use Spatie\LaravelData\Data;
|
||||
use Spatie\LaravelData\Attributes\MapInputName;
|
||||
|
||||
class BankAccount extends Data
|
||||
{
|
||||
public function __construct(
|
||||
public int $id,
|
||||
|
||||
#[MapInputName('mitgliedsNummer')]
|
||||
public int $memberId,
|
||||
|
||||
#[MapInputName('bankleitzahl')]
|
||||
public ?string $blz = null,
|
||||
public ?string $bic = null,
|
||||
public ?string $iban = null,
|
||||
#[MapInputName('institut')]
|
||||
public ?string $bankName = null,
|
||||
#[MapInputName('kontoinhaber')]
|
||||
public ?string $person = null,
|
||||
#[MapInputName('kontonummer')]
|
||||
public ?string $accountNumber = null,
|
||||
#[MapInputName('zahlungsKonditionId')]
|
||||
public ?int $conditionId = null,
|
||||
) {
|
||||
}
|
||||
}
|
|
@ -122,6 +122,9 @@ class Member extends Data
|
|||
|
||||
#[MapInputName('zeitschriftenversand')]
|
||||
public bool $sendNewspaper,
|
||||
|
||||
#[MapInputName('kontoverbindung')]
|
||||
public BankAccount $bankAccount,
|
||||
) {
|
||||
}
|
||||
|
||||
|
|
|
@ -56,6 +56,7 @@ class MemberFake extends Fake
|
|||
'vorname' => '::firstname::',
|
||||
'wiederverwendenFlag' => false,
|
||||
'zeitschriftenversand' => true,
|
||||
'kontoverbindung' => ['mitgliedsNummer' => 55, 'id' => 5656],
|
||||
], $data));
|
||||
}
|
||||
});
|
||||
|
|
|
@ -78,6 +78,64 @@ class FetchMemberTest extends TestCase
|
|||
$this->assertSame('Gruppe', $member->groupName);
|
||||
}
|
||||
|
||||
public function testItGetsMembersBankAccountData(): void
|
||||
{
|
||||
app(MemberFake::class)->shows(1000, 1001, [
|
||||
'kontoverbindung' => [
|
||||
'bankleitzahl' => '34255555',
|
||||
'bic' => 'SOLSDE33XXX',
|
||||
'iban' => 'DE4534250000185577622',
|
||||
'id' => 123,
|
||||
'institut' => 'Bank',
|
||||
'kontoinhaber' => 'Max',
|
||||
'kontonummer' => '77622',
|
||||
'mitgliedsNummer' => 1001,
|
||||
'zahlungsKonditionId' => 500,
|
||||
]
|
||||
]);
|
||||
|
||||
$member = $this->login()->member(1000, 1001);
|
||||
|
||||
$this->assertSame('34255555', $member->bankAccount->blz);
|
||||
$this->assertSame('SOLSDE33XXX', $member->bankAccount->bic);
|
||||
$this->assertSame('DE4534250000185577622', $member->bankAccount->iban);
|
||||
$this->assertSame(123, $member->bankAccount->id);
|
||||
$this->assertSame('Bank', $member->bankAccount->bankName);
|
||||
$this->assertSame('Max', $member->bankAccount->person);
|
||||
$this->assertSame('77622', $member->bankAccount->accountNumber);
|
||||
$this->assertSame(1001, $member->bankAccount->memberId);
|
||||
$this->assertSame(500, $member->bankAccount->conditionId);
|
||||
}
|
||||
|
||||
public function testItGetsMinimalBankAccountData(): void
|
||||
{
|
||||
app(MemberFake::class)->shows(1000, 1001, [
|
||||
'kontoverbindung' => [
|
||||
'bankleitzahl' => null,
|
||||
'bic' => null,
|
||||
'iban' => null,
|
||||
'id' => 123,
|
||||
'institut' => null,
|
||||
'kontoinhaber' => null,
|
||||
'kontonummer' => null,
|
||||
'mitgliedsNummer' => 1001,
|
||||
'zahlungsKonditionId' => null,
|
||||
]
|
||||
]);
|
||||
|
||||
$member = $this->login()->member(1000, 1001);
|
||||
|
||||
$this->assertNull($member->bankAccount->blz);
|
||||
$this->assertNull($member->bankAccount->bic);
|
||||
$this->assertNull($member->bankAccount->iban);
|
||||
$this->assertSame(123, $member->bankAccount->id);
|
||||
$this->assertNull($member->bankAccount->bankName);
|
||||
$this->assertNull($member->bankAccount->person);
|
||||
$this->assertNull($member->bankAccount->accountNumber);
|
||||
$this->assertSame(1001, $member->bankAccount->memberId);
|
||||
$this->assertNull($member->bankAccount->conditionId);
|
||||
}
|
||||
|
||||
public function testGetMinimalData(): void
|
||||
{
|
||||
app(MemberFake::class)->shows(1000, 1001, [
|
||||
|
|
Loading…
Reference in New Issue