'csv', 'bezeichnung' => 'Test-CSV-Bank', 'kuerzel' => 'TCB', 'farbe' => '#6366f1', 'skip_rows' => 0, 'has_header_row' => 1, 'delimiter' => ';', 'enclosure' => '"', 'date_format' => 'd.m.Y', 'decimal_separator' => ',', 'thousands_separator' => '.', 'col_buchungstag' => 0, 'col_wertstellung' => 1, 'col_vorgang' => 2, 'col_buchungstext' => 0, 'col_wert' => 4, ]); $this->assertGreaterThan(0, $id, 'CSV-Format wurde angelegt'); $format = BankSource::find($id); $this->assertNotEmpty($format, 'CSV-Format abrufbar'); $this->assertEquals('csv', $format['type'], 'Typ ist csv'); $this->assertEquals('TCB', $format['kuerzel'], 'Kürzel korrekt gespeichert'); $this->assert($format['provider_id'] === null, 'provider_id ist NULL (kein Bank-Anbieter)'); $this->assertEquals(0, (int)$format['col_buchungstag'], 'Spalte Buchungstag = 0'); $this->assertEquals(1, (int)$format['col_wertstellung'], 'Spalte Wertstellung = 1'); $this->assertEquals(2, (int)$format['col_vorgang'], 'Spalte Vorgang = 2'); $this->assertEquals(4, (int)$format['col_wert'], 'Spalte Betrag = 4'); $this->assertEquals('d.m.Y', $format['date_format'], 'Datumsformat-Default'); // Format erscheint in der CSV-Formatliste … $csvFormats = BankSource::all('csv'); $this->assert( in_array($id, array_map(fn($f) => (int)$f['id'], $csvFormats), true), 'CSV-Format erscheint in BankSource::all(csv)' ); // … aber nicht in der Direktverbindungs-Liste (BankController::direkt()). $connections = array_values(array_filter( BankSource::all(), fn($s) => in_array($s['type'], ['api', 'fints'], true) )); $this->assert( !in_array($id, array_map(fn($c) => (int)$c['id'], $connections), true), 'CSV-Format erscheint nicht in der Direktverbindungs-Liste' ); } }