'Test-Laptop', 'anschaffungsdatum' => '2026-01-15', 'anschaffungskosten' => 1500.00, 'zugaenge' => 0, 'abgaenge' => 0, 'abschreibung_jahr' => 300.00, 'nutzungsdauer' => 5, 'notizen' => 'Testnotiz', ]); $this->assertGreaterThan(0, $id, 'Asset wurde angelegt (ID > 0)'); // ── find() ──────────────────────────────────────────────────── $asset = Asset::find($id); $this->assertNotEmpty($asset, 'Asset::find() liefert einen Datensatz'); $this->assertEquals('Test-Laptop', $asset['bezeichnung'], 'Bezeichnung korrekt'); $this->assertEquals('2026-01-15', $asset['anschaffungsdatum'], 'Anschaffungsdatum korrekt'); $this->assertEquals(1500.00, (float)$asset['anschaffungskosten'], 'Anschaffungskosten korrekt'); $this->assertEquals(300.00, (float)$asset['abschreibung_jahr'], 'Abschreibung korrekt'); $this->assertEquals(5, (int)$asset['nutzungsdauer'], 'Nutzungsdauer korrekt'); // ── Lfd. Nr. und Anlage-Nr. werden automatisch vergeben ────── $this->assertGreaterThan(0, (int)$asset['lfd_nr'], 'Lfd. Nr. > 0'); $this->assertNotEmpty($asset['anlage_nr'], 'Anlage-Nr. wurde generiert'); $this->assert(str_contains($asset['anlage_nr'], '-'), 'Anlage-Nr. enthält Präfix-Trenner'); // ── all() enthält das neue Asset ───────────────────────────── $all = Asset::all(); $found = array_filter($all, fn($a) => (int)$a['id'] === $id); $this->assert(!empty($found), 'Asset erscheint in Asset::all()'); // ── update() ────────────────────────────────────────────────── Asset::update($id, [ 'bezeichnung' => 'Test-Laptop (aktualisiert)', 'anschaffungsdatum' => '2026-01-15', 'anschaffungskosten' => 1500.00, 'zugaenge' => 200.00, 'abgaenge' => 0, 'abschreibung_jahr' => 340.00, 'nutzungsdauer' => 5, 'notizen' => '', ]); $updated = Asset::find($id); $this->assertEquals('Test-Laptop (aktualisiert)', $updated['bezeichnung'], 'Bezeichnung nach Update korrekt'); $this->assertEquals(200.00, (float)$updated['zugaenge'], 'Zugänge nach Update korrekt'); $this->assertEquals(340.00, (float)$updated['abschreibung_jahr'], 'Abschreibung nach Update korrekt'); // ── delete() ────────────────────────────────────────────────── $deleted = Asset::delete($id); $this->assert($deleted, 'Asset::delete() gibt true zurück'); $this->assert(Asset::find($id) === false, 'Gelöschtes Asset nicht mehr auffindbar'); } }