Steuerkram/tests/48_CustomerCcEmailsTest.php

57 lines
2.1 KiB
PHP

<?php
declare(strict_types=1);
use Steuerkram\Models\Customer;
class CustomerCcEmailsTest extends TestCase
{
protected string $testName = 'Test 48: Zusätzliche CC-E-Mail-Adressen pro Kunde';
public function run(): void
{
// Kunde mit zwei CC-Adressen anlegen
$id = Customer::create([
'nachname' => 'CC-Test',
'strasse' => 'Musterweg 1',
'plz' => '12345',
'ort' => 'Musterstadt',
'email' => 'haupt@example.com',
'email_cc1' => 'kopie1@example.com',
'email_cc2' => 'kopie2@example.com',
]);
$this->assertGreaterThan(0, $id, 'Kunde angelegt');
$customer = Customer::find($id);
$this->assertEquals('kopie1@example.com', $customer['email_cc1'], 'CC1 gespeichert');
$this->assertEquals('kopie2@example.com', $customer['email_cc2'], 'CC2 gespeichert');
// Leere CC-Felder werden als NULL gespeichert
Customer::update($id, [
'nachname' => 'CC-Test',
'strasse' => 'Musterweg 1',
'plz' => '12345',
'ort' => 'Musterstadt',
'email' => 'haupt@example.com',
'email_cc1' => '',
'email_cc2' => ' ',
]);
$customer = Customer::find($id);
$this->assert($customer['email_cc1'] === null, 'Leeres CC1 wird NULL');
$this->assert($customer['email_cc2'] === null, 'Whitespace-CC2 wird NULL');
// CC1 aktualisieren, mit Trimmen
Customer::update($id, [
'nachname' => 'CC-Test',
'strasse' => 'Musterweg 1',
'plz' => '12345',
'ort' => 'Musterstadt',
'email' => 'haupt@example.com',
'email_cc1' => ' neu@example.com ',
'email_cc2' => 'kopie2@example.com',
]);
$customer = Customer::find($id);
$this->assertEquals('neu@example.com', $customer['email_cc1'], 'CC1 getrimmt aktualisiert');
$this->assertEquals('kopie2@example.com', $customer['email_cc2'], 'CC2 aktualisiert');
}
}