public void BackoffIsNotInEffectAfterSuccess() { MockTracer tracer = new MockTracer(); MockGitProcess gitProcess = this.GetGitProcess(); GitAuthentication dut = new GitAuthentication(gitProcess); string authString; string error; for (int i = 0; i < 5; ++i) { dut.TryGetCredentials(tracer, out authString, out error).ShouldEqual(true, "Failed to get credential on iteration " + i + ": " + error); dut.Revoke(authString); dut.TryGetCredentials(tracer, out authString, out error).ShouldEqual(true, "Failed to retry getting credential on iteration " + i + ": " + error); dut.ConfirmCredentialsWorked(authString); dut.IsBackingOff.ShouldEqual(false, "Should reset backoff after successfully refreshing credentials"); } }
public void GitProcessFailuresAreRetried() { MockTracer tracer = new MockTracer(); MockGitProcess gitProcess = this.GetGitProcess(); GitAuthentication dut = new GitAuthentication(gitProcess); string authString; string error; gitProcess.ShouldFail = true; dut.TryGetCredentials(tracer, out authString, out error).ShouldEqual(false, "Succeeded despite GitProcess returning failure"); // Reboke should be a no-op as valid credentials have not been stored dut.Revoke(authString); dut.IsBackingOff.ShouldEqual(false, "Should not backoff if there were no credentials to revoke"); gitProcess.ShouldFail = false; dut.TryGetCredentials(tracer, out authString, out error).ShouldEqual(true, "Failed to get credential on retry"); }