tempPfad('.json'); Einstellung::set('e2e_probe_url', 'https://kasse.example.net', 'bargeld'); Einstellung::set('e2e_probe_tage', '10', 'bargeld'); $vorher = Database::fetchAll('SELECT * FROM einstellungen ORDER BY schluessel'); $anzahl = E2EEinstellungen::sichern($pfad); $this->assertEquals(count($vorher), $anzahl, 'Alle Zeilen werden gesichert'); // Der Lauf ändert, leert, löscht und legt an. Einstellung::set('e2e_probe_url', '', 'bargeld'); Einstellung::set('e2e_probe_tage', '99', 'bargeld'); Einstellung::set('e2e_probe_neu', 'x', 'allgemein'); Database::execute("DELETE FROM einstellungen WHERE bereich = 'darstellung'"); $this->assertNull(E2EEinstellungen::sichern($pfad), 'Eine vorhandene Sicherung wird nicht überschrieben'); $wieder = E2EEinstellungen::wiederherstellen($pfad); $this->assertEquals(count($vorher), $wieder, 'Alle Zeilen kommen zurück'); Einstellung::cacheLeeren(); $this->assertEquals('https://kasse.example.net', Einstellung::get('e2e_probe_url'), 'Die geleerte Adresse ist wieder da'); $this->assertEquals('10', Einstellung::get('e2e_probe_tage'), 'Der geänderte Wert ist zurückgesetzt'); $this->assertNull(Einstellung::get('e2e_probe_neu'), 'Vom Lauf angelegte Einstellungen verschwinden'); $this->assertEquals( $vorher, Database::fetchAll('SELECT * FROM einstellungen ORDER BY schluessel'), 'Die Tabelle ist Zeile für Zeile wie vorher, einschließlich Bereich und Änderungszeit' ); $this->assert(!is_file($pfad), 'Die Sicherung ist danach gelöscht'); $this->assertNull(E2EEinstellungen::wiederherstellen($pfad), 'Ohne Sicherung geschieht nichts'); } }