assertEquals(0, count($before), 'Kanal initial leer'); // Eintrag anlegen EventLog::add($channel, 'Importiert: test.pdf → Beleg TST-0001'); EventLog::add($channel, 'Duplikat (Beleg TST-0001): test.pdf'); EventLog::add($channel, 'FEHLER beim Download: fehler.pdf'); $entries = EventLog::findByChannel($channel); $this->assertEquals(3, count($entries), 'Drei Einträge vorhanden'); // Neueste zuerst (höchste id zuletzt hinzugefügt) $this->assertEquals('FEHLER beim Download: fehler.pdf', $entries[0]['message'], 'Neuester Eintrag zuerst'); $this->assertEquals($channel, $entries[0]['channel'], 'Kanal korrekt gesetzt'); // created_at vorhanden und parseable $ts = strtotime($entries[0]['created_at']); $this->assert($ts > 0, 'created_at ist ein gültiges Datum'); // Limit wird eingehalten $limited = EventLog::findByChannel($channel, 2); $this->assertEquals(2, count($limited), 'Limit 2 wird eingehalten'); // Anderer Kanal bleibt unberührt $other = EventLog::findByChannel('other-channel-' . uniqid()); $this->assertEquals(0, count($other), 'Anderer Kanal ist leer'); } }