['steuer' => 150.00]]; $xml = $service->generate(2026, 1, $kzZahllast); $this->assert(str_contains($xml, ''), 'Kz83 bei Zahllast vorhanden'); $this->assert(str_contains($xml, '150.00'), 'Kz83 enthält korrekten Betrag bei Zahllast'); // Fall 2: Erstattung (negativ) → Kz83 muss vorhanden sein (Überschuss) $kzErstattung = ['83' => ['steuer' => -50.00]]; $xml = $service->generate(2026, 1, $kzErstattung); $this->assert(str_contains($xml, ''), 'Kz83 bei Erstattung vorhanden'); $this->assert(str_contains($xml, '-50.00'), 'Kz83 enthält negativen Betrag bei Erstattung'); // Fall 3: Zahllast = 0 → Kz83 weglassen $kzNull = ['83' => ['steuer' => 0.0]]; $xml = $service->generate(2026, 1, $kzNull); $this->assert(!str_contains($xml, ''), 'Kz83 bei Nullbetrag nicht vorhanden'); // Fall 4: Kz39 (Sondervorauszahlung) darf NICHT mehr als Zahllast exportiert werden $this->assert(!str_contains($xml, ''), 'Kz39 (Sondervorauszahlung) wird nicht exportiert'); // Fall 5: XML ist valides XML $doc = new \DOMDocument(); $loaded = @$doc->loadXML($xml); $this->assert($loaded !== false, 'Generiertes XML ist wohlgeformt'); } }