private IApiClient CreateClient(IAuthenticationHandler authenticationHandler = null) { if (authenticationHandler == null) { authenticationHandler = new MockAuthenticationHandler(); } return(new ApiClient(new MockApiClientOptions(), authenticationHandler, new XunitLogger(TestOutputHelper), new MockAppInfo(), new MockDeviceInfo())); }
public async Task GetsUserFromToken() { var authHandler = new MockAuthenticationHandler(); var client = CreateClient(authHandler); var user = await client.GetUserAsync(); Assert.True(authHandler.DidGetToken); Assert.NotNull(user); Assert.Equal("c652decb-374e-4a34-b6e0-c0d377436a71", user.Id); Assert.Equal("John", user.FirstName); Assert.Equal("Doe", user.LastName); Assert.Equal(new DateTime(2018, 1, 18, 1, 30, 22), user.IssuedAt); }
public async Task AllowAnnonymousDoesNotInvokeAuthHandler() { using (new MockServer(MockApiClientOptions.TestPort, string.Empty, (req, rsp, prm) => { Assert.DoesNotContain("Authorization", req.Headers.AllKeys); })) { var authHandler = new MockAuthenticationHandler(); var client = CreateClient(authHandler); Assert.False(authHandler.DidGetToken); var service = new MockApiService(client); await service.MockAnnonymousCall(); Assert.False(authHandler.DidGetToken); } }
public async Task AuthenticatedCallInvokesAuthHandler() { using (new MockServer(MockApiClientOptions.TestPort, string.Empty, (req, rsp, prm) => { foreach (var key in req.Headers.AllKeys) { TestOutputHelper.WriteLine(key); } Assert.Contains("Authorization", req.Headers.AllKeys); })) { var authHandler = new MockAuthenticationHandler(); var client = CreateClient(authHandler); Assert.False(authHandler.DidGetToken); var service = new MockApiService(client); await service.MockGet(); Assert.True(authHandler.DidGetToken); } }
public async Task RetriesBadRequest(int statusCode) { int count = 0; using (new MockServer(MockApiClientOptions.TestPort, string.Empty, (req, rsp, prm) => { if (count++ < 2) { rsp.StatusCode = statusCode; } })) { var authHandler = new MockAuthenticationHandler(); var client = CreateClient(authHandler); var service = new MockApiService(client); var result = await service.MockGet(); Assert.True(authHandler.DidGetToken); Assert.True(result.IsSuccessStatusCode); Assert.Equal(1, authHandler.GetTokenCount); Assert.Equal(3, count); } }