コード例 #1
0
        public async Task ReturnsExpectedDisplayName(string emailAddress, string baseUrl, string route, string requestUri, string responseContent, string expectedName)
        {
            _serviceEndpointsProvider.GetBaseUrl().Returns(baseUrl);

            _serviceEndpointsProvider.GetProfileRoute(emailAddress).Returns(route);

            var request = new HttpRequestMessage(HttpMethod.Get, requestUri);

            _requestBuilder.BuildRequestMessage(HttpMethod.Get, requestUri).Returns(request);

            var response = new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new StringContent(responseContent)
            };

            _httpClient.SendAsync(request).Returns(response);

            var displayName = await _profileProvider.GetDisplayName(emailAddress);

            _serviceEndpointsProvider.Received().GetBaseUrl();

            _serviceEndpointsProvider.Received().GetProfileRoute(emailAddress);

            _requestBuilder.Received().BuildRequestMessage(HttpMethod.Get, requestUri);

            await _httpClient.Received().SendAsync(request);

            displayName.IsSuccess.ShouldBeTrue();

            displayName.Value.ShouldBe(expectedName);
        }
コード例 #2
0
        public async Task <Result <string> > GetDisplayName(string profileIdentifier)
        {
            var requestUri = $"{GetBaseServiceUrl()}{GetProfileRoute(profileIdentifier)}";

            var request = _requestBuilder.BuildRequestMessage(HttpMethod.Get, requestUri);

            var response = await _httpClient.SendAsync(request);

            if (!response.IsSuccessStatusCode)
            {
                return(Result.Fail <string>($"{response.StatusCode}-{response.ReasonPhrase}"));
            }

            var gravatarProfileResponse = await response.Content.ReadAsStringAsync();

            dynamic gravatarProfile = JsonConvert.DeserializeObject(gravatarProfileResponse);

            var displayName = Convert.ToString(gravatarProfile.entry[0].displayName);

            return(Result.Ok(displayName));
        }