public void Ctor() { var httpClient = new HttpClient(); var options = Options.Create(new AuditTrailClientOptions { DeliveryEndpoint = "https://example.com" }); var tokenClientOptions = options.Value.TokenClientOptions; var sink = new TestTokenSink(true); var store = new TestTokenStore(); var tokenAcquirer = new DefaultAccessTokenAcquirer(new TestLogger <DefaultAccessTokenAcquirer>(), new TokenClient(httpClient, options.Value.TokenClientOptions), options); var logger = new TestLogger <AuditTrailClient>(); var env = new TestHostEnvironment(); var client = new AuditTrailClient("https://example.com", "api", tokenClientOptions); client = new AuditTrailClient(httpClient, options, sink, store, logger, tokenAcquirer, env); client = new AuditTrailClient(httpClient, options, sink, store, logger, tokenAcquirer); Assert.Throws <ArgumentNullException>("eventEndpoint", () => new AuditTrailClient(null !, "api", tokenClientOptions)); Assert.Throws <ArgumentNullException>("scope", () => new AuditTrailClient("https://example.com", null !, tokenClientOptions)); Assert.Throws <ArgumentNullException>("tokenClientOptions", () => new AuditTrailClient("https://example.com", "api", null !)); Assert.Throws <ArgumentNullException>("httpClient", () => new AuditTrailClient(null !, options, sink, store, logger, tokenAcquirer, env)); Assert.Throws <ArgumentNullException>("options", () => new AuditTrailClient(httpClient, null !, sink, store, logger, tokenAcquirer, env)); Assert.Throws <ArgumentNullException>("sink", () => new AuditTrailClient(httpClient, options, null !, store, logger, tokenAcquirer, env)); Assert.Throws <ArgumentNullException>("store", () => new AuditTrailClient(httpClient, options, sink, null !, logger, tokenAcquirer, env)); Assert.Throws <ArgumentNullException>("logger", () => new AuditTrailClient(httpClient, options, sink, store, null !, tokenAcquirer, env)); Assert.Throws <ArgumentNullException>("tokenAcquirer", () => new AuditTrailClient(httpClient, options, sink, store, logger, null !, env)); Assert.Throws <ArgumentException>("options", () => new AuditTrailClient(httpClient, Options.Create(new AuditTrailClientOptions()), sink, store, logger, tokenAcquirer, env)); }
public async Task AcquireAccessToken_HttpError_Fail() { var tokenClient = new TokenClient(new HttpClient(new TestHttpMessageHandler(new HttpResponseMessage(HttpStatusCode.OK) { Content = new FailingHttpContent(typeof(HttpRequestException)) })), new TokenClientOptions() { Address = "https://example.com" }); var acquirer = new DefaultAccessTokenAcquirer(new TestLogger <DefaultAccessTokenAcquirer>(), tokenClient, Options.Create(new AuditTrailClientOptions())); await Assert.ThrowsAsync <HttpRequestException>(() => acquirer.AcquireAccessTokenAsync()); }
public async Task AcquireAccessToken_ProtocolError_Fail() { var tokenClient = new TokenClient(new HttpClient(new TestHttpMessageHandler(new HttpResponseMessage(HttpStatusCode.BadRequest) { Content = new StringContent(@"{ ""error"":""invalid_request"" }") })), new TokenClientOptions() { Address = "https://example.com" }); var acquirer = new DefaultAccessTokenAcquirer(new TestLogger <DefaultAccessTokenAcquirer>(), tokenClient, Options.Create(new AuditTrailClientOptions())); await Assert.ThrowsAsync <HttpRequestException>(() => acquirer.AcquireAccessTokenAsync()); }
public async Task AcquireAccessToken_Success() { var tokenClient = new TokenClient(new HttpClient(new TestHttpMessageHandler(new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent(@"{ ""access_token"":""2YotnFZFEjr1zCsicMWpAA"", ""token_type"":""example"", ""expires_in"":3600, ""refresh_token"":""tGzv3JOkF0XG5Qx2TlKWIA"", }") })), new TokenClientOptions() { Address = "https://example.com" }); var acquirer = new DefaultAccessTokenAcquirer(new TestLogger <DefaultAccessTokenAcquirer>(), tokenClient, Options.Create(new AuditTrailClientOptions())); var token = await acquirer.AcquireAccessTokenAsync(); Assert.Equal("2YotnFZFEjr1zCsicMWpAA", token); }