public void ParseJwtWithInternationalCharacters(string email, string firstName, string lastName)
        {
            var jwt = GetJwtString(email, firstName, lastName);

            var context = Substitute.For<HttpContextBase>();
            var request = Substitute.For<HttpRequestBase>();

            var headers = new NameValueCollection();
            headers.Add(Constants.FrontEndDisplayNameHeader, string.Empty);
            headers.Add(Constants.FrontEndPrincipalNameHeader, Constants.AnonymousUserName);
            headers.Add(Constants.PortalTokenHeader, jwt);

            request.Headers.Returns(headers);
            request.UrlReferrer.Returns(new Uri("http://example.com"));
            context.Request.Returns(request);

            var frontEndAuth = new FrontEndAuthProvider();
            Assert.True(frontEndAuth.TryAuthenticateRequest(context), $"Assert TryAuthenticate is successful. {email}, {firstName}, {lastName}");
            Assert.NotNull(context.User);
            Assert.True(context.User is AzureFunctionsPrincipal);
            var user = context.User as AzureFunctionsPrincipal;
            Assert.True(user.Identity is AzureFunctionsIdentity);
            var identity = user.Identity as AzureFunctionsIdentity;
            Assert.Equal(email, identity.Name);
        }