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);
        }
예제 #2
0
        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);
        }