public void TestBadCredentialHelperPath(bool emptyPath) { var outStream = new StringBuilder(); var credHelper = AzureArtifactsCredentialHelper.CreateInstanceForTesting(m => outStream.AppendLine(m), emptyPath ? "" : "badPath", ""); var result = credHelper.AcquirePat(new Uri("https://foo"), PatType.CacheReadWrite).Result; XAssert.IsTrue(result.Result == AzureArtifactsCredentialHelperResultType.NoCredentialProviderSpecified); XAssert.IsNull(result.Pat); }
public void TestBadExitCode() { var outStream = new StringBuilder(); var credHelper = AzureArtifactsCredentialHelper.CreateInstanceForTesting(m => outStream.AppendLine(m), CmdHelper.OsShellExe, "/d /c exit 1"); var result = credHelper.AcquirePat(new Uri("https://foo"), PatType.CacheReadWrite).Result; XAssert.IsTrue(result.Result == AzureArtifactsCredentialHelperResultType.BadStatusCodeReturned); XAssert.IsTrue(outStream.ToString().Contains("Credential provider execution failed with exit code 1")); XAssert.IsNull(result.Pat); }
/// <summary> /// Try to acquire credentials using the Azure Artifacts Helper first, if that fails then fallback to VsoCredentialHelper /// </summary> /// <returns>Credentials for PAT that was acquired.</returns> private VssCredentials GetCredentials() { Action <string> loggerAction = m => m_logger.Verbose(m); var adoCredentialHelper = new AzureArtifactsCredentialHelper(loggerAction); var credentialHelperResult = adoCredentialHelper.AcquirePat(m_config.Service, PatType.VstsDropReadWrite).Result; if (credentialHelperResult.Result == AzureArtifactsCredentialHelperResultType.Success) { return(new VsoCredentialHelper(loggerAction).GetPATCredentials(credentialHelperResult.Pat)); } return(new VsoCredentialHelper(loggerAction).GetCredentials(serviceUri: m_config.Service, useAad: true, existingAadTokenCacheBytes: null, pat: null, promptBehavior: PromptBehavior.Never)); }
public void TestSuccessfulPatAcquisition() { var outStream = new StringBuilder(); var testAuthOutput = new AzureArtifactsAuthOutput() { Username = "", Password = "******", Message = "" }; var serialized = JsonConvert.SerializeObject(testAuthOutput); var credHelper = AzureArtifactsCredentialHelper.CreateInstanceForTesting(m => outStream.AppendLine(m), CmdHelper.OsShellExe, $"/d /c echo {serialized}"); var result = credHelper.AcquirePat(new Uri("https://foo"), PatType.CacheReadWrite).Result; XAssert.IsTrue(result.Result == AzureArtifactsCredentialHelperResultType.Success); XAssert.IsTrue(outStream.ToString().Contains("Credentials were successfully retrieved from provider")); XAssert.IsTrue(outStream.ToString().Contains("testPassword")); XAssert.IsNotNull(result.Pat); }