'User@Example.com', 'claims' => [ 'role' => 'admin', ], ]); self::assertSame('user@example.com', $normalized->email); self::assertSame(1, $normalized->privilegeLevel); self::assertSame('admin', $normalized->role); } public function testThrowsWhenEmailMissing(): void { $this->expectException(UserInfoException::class); UserInfoNormalizer::normalize(['sub' => '123']); } }