コード例 #1
0
        public void GetAccessTokenWithInvalidExchangeToken_InvalidAccessTokenReturned()
        {
            var exchangeTokenRequest = new DTO.Request.StravaExchangeTokenRequest
            {
                client_id       = 1234567,
                approval_prompt = "force",
                redirect_uri    = new System.Uri("localhost:5000/callback"),
                scope           = "read,activity:read_all",
                response_type   = "code"
            };
            var retrievedExchangeToken = sut.GetExchangeToken(exchangeTokenRequest);

            retrievedExchangeToken.Result.code.Should().NotBeNullOrEmpty();
            retrievedExchangeToken.Result.scope.Should().Be(exchangeTokenRequest.scope);
            retrievedExchangeToken.Result.state.Should().Be(null);

            var accessTokenRequest = new DTO.Request.StravaAccessTokenRequest
            {
                client_id     = 1234567,
                client_secret = "something",
                code          = null,
                grant_type    = "authorization_code"
            };

            var retrievedAccessToken = sut.GetAccessToken(accessTokenRequest);

            retrievedAccessToken.Result.access_token.Should().BeNull();
            retrievedAccessToken.Result.refresh_token.Should().BeNull();
            retrievedAccessToken.Result.token_type.Should().BeNull();
            retrievedAccessToken.Result.athlete.Should().BeNull();
            retrievedAccessToken.Result.expires_at.Should().BeNull();
            retrievedAccessToken.Result.expires_in.Should().BeNull();
        }
コード例 #2
0
        public void GetExchangeToken_ExchangeTokenIsValid()
        {
            var exchangeTokenRequest = new DTO.Request.StravaExchangeTokenRequest
            {
                client_id       = 1234567,
                approval_prompt = "force",
                redirect_uri    = new System.Uri("localhost:5000/callback"),
                scope           = "read,activity:read_all",
                response_type   = "code"
            };
            var retrievedExchangeToken = sut.GetExchangeToken(exchangeTokenRequest);

            retrievedExchangeToken.Result.code.Should().NotBeNullOrEmpty();
            retrievedExchangeToken.Result.scope.Should().Be(exchangeTokenRequest.scope);
            retrievedExchangeToken.Result.state.Should().Be(null);
        }
コード例 #3
0
        public void GetExchangeTokenWithInvalidClientID_InvalidExchangeTokenReturned()
        {
            var exchangeTokenRequest = new DTO.Request.StravaExchangeTokenRequest
            {
                client_id       = null,
                approval_prompt = "force",
                redirect_uri    = new System.Uri("localhost:5000/callback"),
                scope           = "read,activity:read_all",
                response_type   = "code"
            };
            var retrievedExchangeToken = sut.GetExchangeToken(exchangeTokenRequest);

            retrievedExchangeToken.Result.code.Should().BeNull();
            retrievedExchangeToken.Result.scope.Should().BeNull();
            retrievedExchangeToken.Result.state.Should().BeNull();
        }
コード例 #4
0
        public async Task <DTO.StravaExchangeTokenResponse> GetExchangeToken([FromQuery] DTO.Request.StravaExchangeTokenRequest request)
        {
            await Task.Delay(0);

            if (request.client_id == null)
            {
                return(new DTO.StravaExchangeTokenResponse());
            }

            RandomNumberGenerator rng = new RNGCryptoServiceProvider();

            byte[] buffer0 = new byte[100];
            rng.GetBytes(buffer0);
            var exchangeToken = Convert.ToBase64String(buffer0);

            return(new DTO.StravaExchangeTokenResponse
            {
                code = exchangeToken,
                scope = request.scope,
                state = null
            });
        }