public async Task CallsDecoratedGetImageUrl(string emailAddress)
        {
            _decoratedProfileProvider.GetImageUrl(emailAddress).Returns(Result.Ok("anyurl"));

            var result = await _exceptionHandlingProfileProvider.GetImageUrl(emailAddress);

            result.IsSuccess.ShouldBeTrue();

            await _decoratedProfileProvider.Received().GetImageUrl(emailAddress);
        }
        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);
        }
Example #3
0
 public async Task <Result <string> > GetImageUrl(string profileIdentifier)
 {
     try
     {
         return(await _decoratedProfileProvider.GetImageUrl(profileIdentifier));
     }
     catch (Exception e)
     {
         return(Result.Fail <string>(e.Message));
     }
 }
Example #4
0
        public async Task ReturnsExpectedImageUrl(string emailAddress, string baseUrl, string route, string expectedResult)
        {
            _serviceEndpointsProvider.GetBaseUrl().Returns(baseUrl);

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

            var imageUrl = await _profileProvider.GetImageUrl(emailAddress);

            _serviceEndpointsProvider.Received().GetBaseUrl();

            _serviceEndpointsProvider.Received().GetAvatarRoute(emailAddress);

            imageUrl.IsSuccess.ShouldBeTrue();

            imageUrl.Value.ShouldBe(expectedResult);
        }
Example #5
0
        public async Task <ProfileInfo> GetProfileInfo(string profileIdentifier)
        {
            var tasks = new List <Task <Result <string> > >
            {
                _profileProvider.GetImageUrl(profileIdentifier),
                _profileProvider.GetDisplayName(profileIdentifier)
            }
            .ToArray();

            var results = await Task.WhenAll(tasks);

            return(new ProfileInfo()
            {
                ProfileIdentifier = new ProfileIdentifier()
                {
                    EmailAddress = profileIdentifier
                },
                AvatarUrl = results[0].IsSuccess ? results[0].Value : string.Empty,
                DisplayName = results[1].IsSuccess ? results[1].Value : string.Empty,
            });
        }