['steuer' => 150.00]]; $xml = $service->generate(2026, 1, $kzZahllast); $this->assert(str_contains($xml, ''), 'Kz39 bei Zahllast vorhanden'); $this->assert(str_contains($xml, '150.00'), 'Kz39 ohne Vorzeichen bei Zahllast'); // Fall 2: Erstattung (negativ) → Kz39 darf nicht vorkommen $kzErstattung = ['69' => ['steuer' => -50.00]]; $xml = $service->generate(2026, 1, $kzErstattung); $this->assert(!str_contains($xml, ''), 'Kz39 bei Erstattung nicht vorhanden'); // Fall 3: Zahllast = 0 → Kz39 weglassen $kzNull = ['69' => ['steuer' => 0.0]]; $xml = $service->generate(2026, 1, $kzNull); $this->assert(!str_contains($xml, ''), 'Kz39 bei Nullbetrag nicht vorhanden'); // Fall 4: XML ist valides XML $doc = new \DOMDocument(); $loaded = @$doc->loadXML($xml); $this->assert($loaded !== false, 'Generiertes XML ist wohlgeformt'); } }