public void IntegrationTest_TrackViaClient_CompleteRefreshToken() { TestHelper.EnsureProductionValuesBeforeRunningIntegrationTests(); // Assemble // Act TrackViaClient client = new TrackViaClient(IntegrationTestConfig.TRACKVIA_HOSTNAME, IntegrationTestConfig.TRACKVIA_USERNAME, IntegrationTestConfig.TRACKVIA_PASSWORD, IntegrationTestConfig.TRACKVIA_API_KEY); client.RefreshAccessToken(); // Assert client.ShouldNotBeNull(); client.ValidateLastGoodTokenHasNotExpired(DateTime.Now).ShouldBeTrue("last good token should still be valid"); client.ValidateAccessTokenIsPresent().ShouldBeTrue("access token is not present"); }
public void TrackViaClient_RefreshAccessToken_ShouldReturnNewToken() { // Assemble Mock <IAsyncHttpClientHelper> httpClient = new Mock <IAsyncHttpClientHelper>(); // Authorization Token OAuth2Token token = TestHelper.GetTestAuthToken(); TaskCompletionSource <HttpClientResponse> asyncAuthorizeTaskResult = new TaskCompletionSource <HttpClientResponse>(); asyncAuthorizeTaskResult.SetResult(new HttpClientResponse() { Content = JsonConvert.SerializeObject(token), ContentType = HttpClientResponseTypes.json, StatusCode = HttpStatusCode.OK }); httpClient.Setup(x => x .SendGetRequestAsync(It.Is <string>(s => s.Contains("grant_type=password")))) .Returns(asyncAuthorizeTaskResult.Task); // Refresh Token OAuth2Token refreshToken = TestHelper.GetTestRefreshToken(); TaskCompletionSource <HttpClientResponse> asyncRefreshTaskResult = new TaskCompletionSource <HttpClientResponse>(); asyncRefreshTaskResult.SetResult(new HttpClientResponse() { Content = JsonConvert.SerializeObject(refreshToken), ContentType = HttpClientResponseTypes.json, StatusCode = HttpStatusCode.OK }); httpClient.Setup(x => x .SendGetRequestAsync(It.Is <string>(s => s.Contains("grant_type=refresh_token")))) .Returns(asyncRefreshTaskResult.Task); // Act TrackViaClient client = new TrackViaClient(httpClient.Object, TestHelper.HostName_Fake, TestHelper.Username_Fake, TestHelper.ApiKey_Fake, TestHelper.ApiKey_Fake); client.Authorize(TestHelper.Username_Fake, TestHelper.Password_Fake); client.RefreshAccessToken(); // Assert client.ValidateLastGoodTokenIsEqual(refreshToken).ShouldBeTrue("last good token does not match expected result"); }