public async Task GitHubHostProvider_GetSupportedAuthenticationModes_WithMetadata(string uriString, string gitHubAuthModes, string installedVersion, bool verifiablePasswordAuthentication, AuthenticationModes expectedModes) { var targetUri = new Uri(uriString); var context = new TestCommandContext { }; if (gitHubAuthModes != null) { context.Environment.Variables.Add(GitHubConstants.EnvironmentVariables.AuthenticationModes, gitHubAuthModes); } var ghApiMock = new Mock <IGitHubRestApi>(MockBehavior.Strict); var ghAuthMock = new Mock <IGitHubAuthentication>(MockBehavior.Strict); var metaInfo = new GitHubMetaInfo { InstalledVersion = installedVersion, VerifiablePasswordAuthentication = verifiablePasswordAuthentication }; ghApiMock.Setup(x => x.GetMetaInfoAsync(targetUri)).ReturnsAsync(metaInfo); var provider = new GitHubHostProvider(context, ghApiMock.Object, ghAuthMock.Object); AuthenticationModes actualModes = await provider.GetSupportedAuthenticationModesAsync(targetUri); Assert.Equal(expectedModes, actualModes); }
protected override async Task <bool> RunInternalAsync(StringBuilder log, IList <string> additionalFiles) { var targetUri = new Uri("https://github.com"); log.AppendLine($"Using '{targetUri}' as API target."); log.Append("Querying '/meta' endpoint..."); GitHubMetaInfo metaInfo = await _api.GetMetaInfoAsync(targetUri); log.AppendLine(" OK"); return(true); }
public async Task GitHubHostProvider_GetSupportedAuthenticationModes_NotDotCom_NewInstanceWithPassword_ReturnsBasicAndOAuth() { var targetUri = new Uri("https://ghe.io"); var metaInfo = new GitHubMetaInfo { InstalledVersion = "100.0", VerifiablePasswordAuthentication = true }; var expectedModes = AuthenticationModes.Basic | AuthenticationModes.OAuth; var context = new TestCommandContext(); var ghAuthMock = new Mock <IGitHubAuthentication>(MockBehavior.Strict); var ghApiMock = new Mock <IGitHubRestApi>(MockBehavior.Strict); ghApiMock.Setup(x => x.GetMetaInfoAsync(targetUri)).ReturnsAsync(metaInfo); var provider = new GitHubHostProvider(context, ghApiMock.Object, ghAuthMock.Object); AuthenticationModes actualModes = await provider.GetSupportedAuthenticationModesAsync(targetUri); Assert.Equal(expectedModes, actualModes); }