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");
        }
Exemple #2
0
        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");
        }