public void TrueApiClientAuthenticates() { var client = new TrueApiClient(TrueApiClient.SandboxApiUrl, new Credentials { CertificateThumbprint = TestCertificateThumbprint, }); // test tracing var trace = new StringBuilder(); client.Tracer = (f, a) => trace.AppendFormat(f, a); try { // authenticates and requests a resource var s = client.Get("auth/key"); Assert.NotNull(s); Assert.IsTrue(client.IsAuthenticated); if (client.Client.Authenticator is CredentialsAuthenticator auth) { Assert.NotNull(auth.AuthToken); } else { Assert.Fail("Authenticator is missing"); } } finally { // logs out Assert.DoesNotThrow(() => client.Dispose()); Assert.IsFalse(client.IsAuthenticated); if (client.Client.Authenticator is CredentialsAuthenticator auth) { Assert.IsNull(auth.AuthToken); } } var traceText = trace.ToString(); Assert.IsTrue(traceText.Length > 0, "TrueApiClient trace is empty"); Assert.IsTrue(traceText.Contains("// Authenticate")); Assert.IsTrue(traceText.Contains("// GetToken")); Assert.IsTrue(traceText.Contains("-> GET")); Assert.IsTrue(traceText.Contains("<- OK 200 (OK)")); }
private void AuthenticateTrueApiClient(AuthToken savedToken = null) { var client = new TrueApiClient(TrueApiClient.SandboxApiUrl, new TrueApiCredentials { CertificateThumbprint = TestCertificateThumbprint, SessionToken = savedToken, }); // test tracing var trace = new StringBuilder(); client.Tracer = (f, a) => { trace.AppendFormat(f, a); TestContext.Progress.WriteLine(f, a); }; try { // authenticates and requests a resource var s = client.Get("auth/key"); Assert.NotNull(s); Assert.IsTrue(client.Authenticator.IsAuthenticated); Assert.NotNull(client.Authenticator.AuthToken); // save the token for later reuse SaveTrueApiToken(client.Authenticator.AuthToken); } finally { // logs out Assert.DoesNotThrow(() => client.Dispose()); Assert.IsFalse(client.Authenticator.IsAuthenticated); Assert.IsNull(client.Authenticator.AuthToken); } var traceText = trace.ToString(); Assert.IsTrue(traceText.Length > 0, "TrueApiClient trace is empty"); Assert.IsTrue(traceText.Contains("// ")); Assert.IsTrue(traceText.Contains("-> GET")); Assert.IsTrue(traceText.Contains("<- OK 200 (OK)")); }