public async Task GetMobileNumberGeneratesCorrectRequest()
        {
            const string countryCode  = "+1";
            const string phoneNumber  = "999-999-9999";
            const string fullNamePath = "/v2/persons/~current/profile/mobileNumber";
            var          runHandler   = false;
            var          httpClient   = new HttpClient(new ActionMessageHandler(req =>
            {
                runHandler = true;
                Assert.Equal(req.RequestUri.PathAndQuery, fullNamePath);
                return(new HttpResponseMessage(System.Net.HttpStatusCode.OK)
                {
                    Content = new StringContent(Utility.GetExampleJson("MobileNumber.json"))
                });
            }))
            {
                BaseAddress = new Uri("https://testclient.com", UriKind.Absolute)
            };

            var client      = new PersonProfileClient(httpClient);
            var phoneResult = await client.MobileNumber();

            Assert.True(runHandler);
            Assert.Equal(countryCode, phoneResult.CountryCode);
            Assert.Equal(phoneNumber, phoneResult.PhoneNumber);
        }
        public void ClientSetDirectlySetCorrectly()
        {
            var lowClient = new HttpClient();

            var client = new PersonProfileClient(lowClient);

            Assert.Equal(lowClient, client.Client);
        }
        public void CreateFromSkillRequestSetupCorrectly()
        {
            const string endpoint    = "https://testclient/";
            const string accesstoken = "accesstoken";

            var request = new SkillRequest
            {
                Context = new Context
                {
                    System = new AlexaSystem
                    {
                        ApiEndpoint    = endpoint,
                        ApiAccessToken = accesstoken
                    }
                }
            };

            var client = new PersonProfileClient(request);

            Assert.Equal(endpoint, client.Client.BaseAddress.ToString());
            Assert.Equal(accesstoken, client.Client.DefaultRequestHeaders.Authorization.Parameter);
        }
        public async Task GetGivenNameGeneratesCorrectRequest()
        {
            const string expectedResult = "Steven";
            const string fullNamePath   = "/v2/persons/~current/profile/givenName";
            var          runHandler     = false;
            var          httpClient     = new HttpClient(new ActionMessageHandler(req =>
            {
                runHandler = true;
                Assert.Equal(req.RequestUri.PathAndQuery, fullNamePath);
                return(new HttpResponseMessage(System.Net.HttpStatusCode.OK)
                {
                    Content = new StringContent(Utility.GetExampleJson("GivenName.json"))
                });
            }))
            {
                BaseAddress = new Uri("https://testclient.com", UriKind.Absolute)
            };

            var client          = new PersonProfileClient(httpClient);
            var givenNameResult = await client.GivenName();

            Assert.True(runHandler);
            Assert.Equal(expectedResult, givenNameResult);
        }