set('notice', 'Bonjour'); self::assertSame('Bonjour', $flash->get('notice')); self::assertNull($flash->get('notice')); } public function testGetCastsNonStringValueAndRemovesIt(): void { $_SESSION['flash']['count'] = 123; $flash = new FlashService(); self::assertSame('123', $flash->get('count')); self::assertArrayNotHasKey('count', $_SESSION['flash']); } public function testGetCastsBooleanFalseToEmptyStringAndRemovesIt(): void { $_SESSION['flash']['flag'] = false; $flash = new FlashService(); self::assertSame('', $flash->get('flag')); self::assertArrayNotHasKey('flag', $_SESSION['flash']); } public function testSetOverridesPreviousMessageForSameKey(): void { $flash = new FlashService(); $flash->set('notice', 'Premier'); $flash->set('notice', 'Second'); self::assertSame('Second', $flash->get('notice')); } public function testGetReturnsNullWhenMissing(): void { $flash = new FlashService(); self::assertNull($flash->get('missing')); } }