assertEquals('', Request::post('fehlt'), 'post(): fehlender Wert liefert Default ""'); $this->assertEquals('x', Request::post('fehlt', 'x'), 'post(): fehlender Wert liefert übergebenen Default'); $_POST['feld'] = 'wert'; $this->assertEquals('wert', Request::post('feld'), 'post(): vorhandener Wert wird durchgereicht'); // ── postInt() ──────────────────────────────────────────── unset($_POST['n']); $this->assertEquals(0, Request::postInt('n'), 'postInt(): fehlender Wert liefert Default 0'); $this->assertEquals(7, Request::postInt('n', 7), 'postInt(): fehlender Wert liefert übergebenen Default'); $_POST['n'] = ''; $this->assertEquals(7, Request::postInt('n', 7), 'postInt(): leerer String liefert Default'); $_POST['n'] = 'abc'; $this->assertEquals(0, Request::postInt('n', 7), 'postInt(): "abc" wird zu 0 (kein Default, da Wert gesetzt ist)'); $_POST['n'] = '12'; $this->assertEquals(12, Request::postInt('n'), 'postInt(): "12" wird zu 12'); $_POST['n'] = '12.7'; $this->assertEquals(12, Request::postInt('n'), 'postInt(): "12.7" wird zu 12 (int-Cast schneidet ab)'); // ── postFloat() ────────────────────────────────────────── unset($_POST['betrag']); $this->assertEquals(0.0, Request::postFloat('betrag'), 'postFloat(): fehlender Wert liefert Default 0.0'); $this->assertEquals(9.5, Request::postFloat('betrag', 9.5), 'postFloat(): fehlender Wert liefert übergebenen Default'); $_POST['betrag'] = ''; $this->assertEquals(9.5, Request::postFloat('betrag', 9.5), 'postFloat(): leerer String liefert Default'); $_POST['betrag'] = '1234,56'; $this->assertEquals(1234.56, Request::postFloat('betrag'), 'postFloat(): deutsches Dezimalkomma wird korrekt geparst'); $_POST['betrag'] = '-119,00'; $this->assertEquals(-119.0, Request::postFloat('betrag'), 'postFloat(): negativer Betrag mit Komma'); // ── postDate() ─────────────────────────────────────────── unset($_POST['datum']); $this->assertEquals(null, Request::postDate('datum'), 'postDate(): fehlender Wert liefert null'); $_POST['datum'] = ''; $this->assertEquals(null, Request::postDate('datum'), 'postDate(): leerer Wert liefert null'); $_POST['datum'] = '2026-05-15'; $this->assertEquals('2026-05-15', Request::postDate('datum'), 'postDate(): gültiges Format (Y-m-d) wird normalisiert zurückgegeben'); $_POST['datum'] = 'nicht-valide'; $this->assertEquals(null, Request::postDate('datum'), 'postDate(): ungültiges Format liefert null'); $_POST['datum'] = '15.05.2026'; $this->assertEquals('2026-05-15', Request::postDate('datum', 'd.m.Y'), 'postDate(): abweichendes Format wird korrekt geparst und normalisiert'); $this->assertEquals(null, Request::postDate('datum'), 'postDate(): Wert passt nicht zum Default-Format Y-m-d'); // ── get() ──────────────────────────────────────────────── $this->assertEquals('', Request::get('fehlt'), 'get(): fehlender Wert liefert Default ""'); $this->assertEquals(1, Request::get('seite', 1), 'get(): fehlender Wert liefert übergebenen Default'); $_GET['seite'] = '3'; $this->assertEquals('3', Request::get('seite', 1), 'get(): vorhandener Wert wird durchgereicht'); // ── has() ──────────────────────────────────────────────── unset($_POST['sandbox']); $this->assert(Request::has('sandbox') === false, 'has(): fehlendes Feld liefert false'); $_POST['sandbox'] = '1'; $this->assert(Request::has('sandbox') === true, 'has(): vorhandenes Feld liefert true'); $_POST['leer'] = ''; $this->assert(Request::has('leer') === true, 'has(): auch ein leerer, aber gesetzter Wert zählt als vorhanden'); $_POST = []; $_GET = []; } }