grundwerteVorhanden(); $this->schreibenUndLesen(); $this->typHelfer(); $this->bereicheVollstaendig(); } private function grundwerteVorhanden(): void { Einstellung::cacheLeeren(); $this->assertEquals('Privat', Einstellung::get('mandant_name'), 'Grundwert mandant_name aus der Migration'); $this->assertEquals('EUR', Einstellung::get('waehrung'), 'Grundwert waehrung aus der Migration'); $this->assertEquals('standardwert', Einstellung::get('gibt_es_nicht', 'standardwert'), 'Unbekannter Schlüssel liefert den Standardwert'); } private function schreibenUndLesen(): void { Einstellung::set('mandant_name', 'Haushalt Schepmann', 'allgemein'); $this->assertEquals('Haushalt Schepmann', Einstellung::get('mandant_name'), 'Geänderter Wert wird zurückgelesen'); // set() muss den Cache verwerfen, sonst liefert get() den alten Wert. Einstellung::set('mandant_name', 'Zweite Änderung', 'allgemein'); $this->assertEquals('Zweite Änderung', Einstellung::get('mandant_name'), 'Zweite Änderung umgeht den Cache'); Einstellung::set('neuer_schluessel', 'wert', 'diagnose'); $gruppen = Einstellung::nachBereich(); $this->assert( isset($gruppen['diagnose']['neuer_schluessel']), 'Neuer Schlüssel landet im richtigen Bereich' ); } private function typHelfer(): void { Einstellung::set('debug_log_aktiv', '1', 'diagnose'); $this->assert(Einstellung::getBool('debug_log_aktiv'), 'getBool erkennt "1" als wahr'); Einstellung::set('debug_log_aktiv', '0', 'diagnose'); $this->assert(!Einstellung::getBool('debug_log_aktiv'), 'getBool erkennt "0" als falsch'); $this->assert( Einstellung::getBool('gibt_es_nicht', true), 'getBool nutzt den Standardwert bei unbekanntem Schlüssel' ); Einstellung::set('zeilen_pro_seite', '250', 'darstellung'); $this->assertEquals(250, Einstellung::getInt('zeilen_pro_seite'), 'getInt wandelt in eine Zahl'); $this->assertEquals(100, Einstellung::getInt('gibt_es_nicht', 100), 'getInt nutzt den Standardwert'); } private function bereicheVollstaendig(): void { // Jeder in der Datenbank benutzte Bereich braucht einen Reiter im Dialog, // sonst wären die Werte nicht mehr erreichbar. $bereiche = array_column( Finanzmanager\Database::fetchAll('SELECT DISTINCT bereich FROM einstellungen'), 'bereich' ); foreach ($bereiche as $bereich) { $this->assert( array_key_exists($bereich, Einstellung::BEREICHE), "Bereich '{$bereich}' hat einen Reiter im Einstellungsdialog" ); } } }