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); }
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)); }