Steuerkram/tests/24_RechnungLoeschenTestmodusTest.php

56 lines
1.8 KiB
PHP

<?php
declare(strict_types=1);
use Steuerkram\Models\Customer;
use Steuerkram\Models\Invoice;
use Steuerkram\Models\Setting;
class RechnungLoeschenTestmodusTest extends TestCase
{
protected string $testName = 'Test 24: Rechnung löschen (nur im Testmodus)';
public function run(): void
{
$customerId = Customer::create([
'nachname' => 'LoeschTestKunde',
'strasse' => 'Teststr. 1',
'plz' => '12345',
'ort' => 'Teststadt',
'land' => 'DE',
]);
$invoiceId = Invoice::create([
'customer_id' => $customerId,
'betreff' => 'Lösch-Test-Rechnung',
'rechnungs_datum' => date('Y-m-d'),
'lines' => [
[
'bezeichnung' => 'Testposition',
'menge' => 1,
'einheit' => 'Stk.',
'einzelpreis' => 100,
'ust_satz' => 19,
],
],
]);
$this->assertGreaterThan(0, $invoiceId, 'Rechnung wurde angelegt');
$invoice = Invoice::find($invoiceId);
$this->assert($invoice !== false, 'Rechnung per find() auffindbar');
// Rechnung löschen
Invoice::delete($invoiceId);
$afterDelete = Invoice::find($invoiceId);
$this->assert($afterDelete === false, 'Rechnung nach delete() nicht mehr auffindbar');
// Positionen ebenfalls gelöscht
$lines = Invoice::lines($invoiceId);
$this->assertEquals(0, count($lines), 'Invoice-Lines nach delete() gelöscht');
// test_mode-Flag ist bei Neuinstallation gesetzt
$settings = Setting::get();
$this->assert(isset($settings['test_mode']), 'test_mode-Feld in company_settings vorhanden');
}
}