public void GivenIsAuthorized() { var authService = new AuthenticationService(); var vstsService = new VstsService(); var botData = Config.GetBotData(); botData.LoadAsync(CancellationToken.None).Wait(); if (!botData.UserData.TryGetValue("userData", out UserData data)) { data = new UserData(); } var refreshToken = Config.RefreshToken; if (data.Profile != null && !Config.RefreshTokenReinitialize) { refreshToken = data.Profile.Token.RefreshToken; } Config.RefreshTokenReinitialize = false; var oldToken = new OAuthToken { AppSecret = Config.AppSecret, AuthorizeUrl = Config.AuthorizeUrl, RefreshToken = refreshToken }; var token = authService.GetToken(oldToken).Result; var p = vstsService.GetProfile(token).Result; var accounts = vstsService.GetAccounts(token, p.Id).Result; var profile = new Profile { Accounts = accounts.Select(a => a.AccountName).ToList(), Id = p.Id, Token = token }; data.Profiles.Clear(); data.SelectProfile(profile); botData.UserData.SetValue("userData", data); botData.FlushAsync(CancellationToken.None).Wait(); Config.Profile = profile; Config.Token = token; }
public async Task GetProfileTest() { var service = new VstsService(); await Assert.ThrowsExceptionAsync <ArgumentNullException>(async() => await service.GetProfile(null)); using (ShimsContext.Create()) { var expected = new Profile(); InitializeConnectionShim(GetProfileHttpClient(expected)); Profile actual = await service.GetProfile(this.token); Assert.AreEqual(expected, actual); } }
public void GivenIsAuthorized() { var authService = new AuthenticationService(Config.AppSecret, Config.AuthorizeUrl); var vstsService = new VstsService(); var data = Config.BotState.GetUserData(ChannelIds.Directline, Config.UserName); var profile = data.GetProperty <VstsProfile>("Profile"); var refreshToken = Config.RefreshToken; if (profile != null && !Config.RefreshTokenReinitialize) { refreshToken = profile.Token.RefreshToken; } Config.RefreshTokenReinitialize = false; var token = authService.GetToken(new OAuthToken { RefreshToken = refreshToken }).Result; var p = vstsService.GetProfile(token).Result; var accounts = vstsService.GetAccounts(token, p.Id).Result; profile = new VstsProfile { Accounts = accounts.Select(a => a.AccountName).ToList(), Id = p.Id, DisplayName = p.DisplayName, EmailAddress = p.EmailAddress, Token = token }; data.SetProfile(profile); data.SetProfiles(new List <VstsProfile> { profile }); Config.BotState.SetUserDataAsync(ChannelIds.Directline, Config.UserName, data).Wait(); Config.Profile = profile; Config.Token = token; }