public async Task ReturnsExpectedProfileInfo(string emailAddress, string expectedUrl, string expectedName) { _profileProvider.GetImageUrl(emailAddress).Returns(Result.Ok(expectedUrl)); _profileProvider.GetDisplayName(emailAddress).Returns(Result.Ok(expectedName)); var result = await _gravatarService.GetProfileInfo(emailAddress); await _profileProvider.Received().GetImageUrl(emailAddress); await _profileProvider.Received().GetDisplayName(emailAddress); result.AvatarUrl.ShouldBe(expectedUrl); result.DisplayName.ShouldBe(expectedName); result.ProfileIdentifier.EmailAddress.ShouldBe(emailAddress); }
public async Task <ProfileInfo> GetProfileInfo(string emailAddress) { if (_cache.TryGetValue(emailAddress, out var cachedProfileInfo)) { return(cachedProfileInfo); } var profileInfo = await _decoratedGravatarService.GetProfileInfo(emailAddress); _cache.TryAdd(emailAddress, profileInfo); return(profileInfo); }