public void ShowsHelpfulTooltipWhenForbiddenResponseReceived() { var response = Substitute.For <IResponse>(); response.StatusCode.Returns(HttpStatusCode.Forbidden); var repositoryHosts = Substitute.For <IRepositoryHosts>(); repositoryHosts.LogIn(HostAddress.GitHubDotComHostAddress, Args.String, Args.String) .Returns(_ => Observable.Throw <AuthenticationResult>(new ForbiddenException(response))); var browser = Substitute.For <IVisualStudioBrowser>(); var loginViewModel = new LoginToGitHubViewModel(repositoryHosts, browser); var message = ""; using (UserError.RegisterHandler <UserError>(x => { message = x.ErrorMessage; return(Observable.Return(RecoveryOptionResult.RetryOperation)); })) { loginViewModel.Login.Execute(null); } Assert.Equal("Make sure to use your password and not a Personal Access token to log in.", message); }
public void LaunchesBrowserToForgotPasswordPage() { var repositoryHosts = Substitute.For <IRepositoryHosts>(); var gitHubHost = Substitute.For <IRepositoryHost>(); gitHubHost.Address.Returns(HostAddress.GitHubDotComHostAddress); repositoryHosts.GitHubHost.Returns(gitHubHost); var browser = Substitute.For <IVisualStudioBrowser>(); var loginViewModel = new LoginToGitHubViewModel(repositoryHosts, browser); loginViewModel.NavigateForgotPassword.Execute(null); browser.Received().OpenUrl(new Uri(HostAddress.GitHubDotComHostAddress.WebUri, GitHubUrls.ForgotPasswordPath)); }
public void LaunchesBrowserToSignUpPage() { var repositoryHosts = Substitute.For <IRepositoryHosts>(); var gitHubHost = Substitute.For <IRepositoryHost>(); gitHubHost.Address.Returns(HostAddress.GitHubDotComHostAddress); repositoryHosts.GitHubHost.Returns(gitHubHost); var browser = Substitute.For <IVisualStudioBrowser>(); var loginViewModel = new LoginToGitHubViewModel(repositoryHosts, browser); loginViewModel.SignUp.Execute(null); browser.Received().OpenUrl(GitHubUrls.Plans); }
public void ShowsHelpfulTooltipWhenForbiddenResponseReceived() { var response = Substitute.For <IResponse>(); response.StatusCode.Returns(HttpStatusCode.Forbidden); var repositoryHosts = Substitute.For <IRepositoryHosts>(); repositoryHosts.LogIn(HostAddress.GitHubDotComHostAddress, Args.String, Args.String) .Returns(_ => Observable.Throw <AuthenticationResult>(new ForbiddenException(response))); var browser = Substitute.For <IVisualStudioBrowser>(); var loginViewModel = new LoginToGitHubViewModel(repositoryHosts, browser); loginViewModel.Login.Execute(null); Assert.True(loginViewModel.ShowLogInFailedError); Assert.Equal("Make sure to use your password and not a Personal Access token to log in.", loginViewModel.LoginFailedMessage); }