public async Task<ExternalUserInformation> GetExternalUserInformation(ExternalLoginInfo externalLoginInfo) { var externalUserInformation = new ExternalUserInformation(); var userId = externalLoginInfo.Principal.FindFirstValue("urn:twitter:userid"); var screenName = externalLoginInfo.Principal.FindFirstValue("urn:twitter:screenname"); var twitterAccount = await twitterRepository.GetTwitterAccount(userId, screenName); if (twitterAccount != null && twitterAccount.User != null) { var twitterUser = twitterAccount.User; externalUserInformation.Email = twitterUser.Email; if (!string.IsNullOrEmpty(twitterUser.Name)) { var array = twitterUser.Name.Split(' '); if (array.Length > 1) { externalUserInformation.FirstName = array[0]; externalUserInformation.LastName = array[1]; } } } return externalUserInformation; } }
public async Task ReturnCorrectExternalUserInformationWhenTwitterAccountIsNull() { var sut = new TwitterExternalUserInformationProvider(Mock.Of<ITwitterRepository>()); var result = await sut.GetExternalUserInformation(new ExternalLoginInfo(new ClaimsPrincipal(), null, null, null)); Assert.Null(result.Email); Assert.Null(result.FirstName); Assert.Null(result.LastName); }