public void GetTokenByRefreshTokenRequest_WithTokenNull_ThrowsArgumentNullException()
        {
            var exception =
                Record.Exception(() =>
                                 OAuth2RequestBuilder.GetTokenRequest("url",
                                                                      null,
                                                                      "clientId",
                                                                      "clientSecret"));

            Assert.NotNull(exception);
            Assert.IsType <ArgumentNullException>(exception);

            var argNullException = (ArgumentNullException)exception;

            Assert.Equal("refreshToken", argNullException.ParamName);
        }
        public async Task GetTokenByRefreshTokenRequest_WithRefreshTokenEqual()
        {
            var request = OAuth2RequestBuilder.GetTokenRequest("https://api.imgur.com/oauth2/token",
                                                               "ABChjfhjhjdhfjksdfsdfsdfs", "123", "1234");

            Assert.NotNull(request);
            Assert.Equal("https://api.imgur.com/oauth2/token", request.RequestUri.ToString());
            Assert.Equal(HttpMethod.Post, request.Method);
            Assert.NotNull(request.Content);

            var expected = await request.Content.ReadAsStringAsync();

            Assert.Equal(
                "client_id=123&client_secret=1234&grant_type=refresh_token&refresh_token=ABChjfhjhjdhfjksdfsdfsdfs",
                expected);
        }
Example #3
0
        internal async Task <IOAuth2Token> GetTokenInternalAsync(string refreshToken,
                                                                 CancellationToken cancellationToken = default)
        {
            using (var request = OAuth2RequestBuilder.GetTokenRequest(TokenEndpointUrl,
                                                                      refreshToken,
                                                                      _apiClient.ClientId,
                                                                      _apiClient.ClientSecret))
            {
                var httpResponse = await _httpClient.SendAsync(request, cancellationToken)
                                   .ConfigureAwait(false);

                httpResponse.EnsureSuccessStatusCode();

                var response = await httpResponse.Content.ReadAsStringAsync()
                               .ConfigureAwait(false);

                return(_responseConverter.ConvertOAuth2TokenResponse(response));
            }
        }