56 lines
1.8 KiB
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');
|
|
}
|
|
}
|