Beispiel #1
0
        public async Task ResetPassword(JToken passwordResetRequest)
        {
            var content  = JsonContent.FromObject(passwordResetRequest);
            var response = await _httpClient.PostAsync("resetpassword", content);

            await response.GetContentAsync <JToken>();
        }
Beispiel #2
0
        public async Task <JToken> UpdateUserRoles(Guid userId, JToken userRoles)
        {
            var content  = JsonContent.FromObject(userRoles);
            var response = await _httpClient.PutAsync($"user/{userId}/roles", content);

            return(await response.GetContentAsync <JToken>());
        }
Beispiel #3
0
        public async Task <JToken> CreateApiResourceSecret(string apiResourceId, JToken secret)
        {
            var content  = JsonContent.FromObject(secret);
            var response = await _httpClient.PostAsync($"admin/resource/{apiResourceId}/secret", content);

            return(await response.GetContentAsync <JToken>());
        }
Beispiel #4
0
        public async Task <JToken> ResetPasswordQuestions(JToken passwordResetQuestions)
        {
            var content  = JsonContent.FromObject(passwordResetQuestions);
            var response = await _httpClient.PostAsync("resetpassword/questions", content);

            return(await response.GetContentAsync <JToken>());
        }
        public async Task <JToken> UpdateBlogPost(string blogPostId, JToken requestContent)
        {
            var content = JsonContent.FromObject(requestContent);
            var result  = await _delegatedHttpClient.PutAsync($"blog/{blogPostId}", content);

            return(await result.GetContentAsync <JToken>());
        }
        public async Task <JToken> GetMultipleCharacterStatsByName(IEnumerable <string> characterNames)
        {
            var content  = JsonContent.FromObject(characterNames);
            var response = await _httpClient.PostAsync($"ps2/character/byname", content);

            return(await response.GetContentAsync <JToken>());
        }
        public async Task <JToken> CreateEvent(JToken requestContent)
        {
            var content = JsonContent.FromObject(requestContent);
            var result  = await _delegatedHttpClient.PostAsync($"gameevent", content);

            return(await result.GetContentAsync <JToken>());
        }
Beispiel #8
0
        public async Task <JToken> CreateRole(JToken roleRequest)
        {
            var content  = JsonContent.FromObject(roleRequest);
            var response = await _httpClient.PostAsync("roles", content);

            return(await response.GetContentAsync <JToken>());
        }
Beispiel #9
0
        public async Task <JToken> CreateApiResource(JToken apiResource)
        {
            var content  = JsonContent.FromObject(apiResource);
            var response = await _httpClient.PostAsync("admin/resource", content);

            return(await response.GetContentAsync <JToken>());
        }
Beispiel #10
0
        public async Task <JToken> UpdateApiResource(string apiResourceId, JToken apiResource)
        {
            var content  = JsonContent.FromObject(apiResource);
            var response = await _httpClient.PutAsync($"admin/resource/{apiResourceId}", content);

            return(await response.GetContentAsync <JToken>());
        }
Beispiel #11
0
        public async Task <JToken> CreateClientSecret(string clientId, JToken secret)
        {
            var content  = JsonContent.FromObject(secret);
            var response = await _httpClient.PostAsync($"admin/client/{clientId}/secret", content);

            return(await response.GetContentAsync <JToken>());
        }
Beispiel #12
0
        public async Task <JToken> UpdateClient(string clientId, JToken client)
        {
            var content  = JsonContent.FromObject(client);
            var response = await _httpClient.PutAsync($"admin/client/{clientId}", content);

            return(await response.GetContentAsync <JToken>());
        }
Beispiel #13
0
        public async Task <JToken> CreateClient(JToken client)
        {
            var content  = JsonContent.FromObject(client);
            var response = await _httpClient.PostAsync("admin/client", content);

            return(await response.GetContentAsync <JToken>());
        }
Beispiel #14
0
        public async Task <JToken> LockUser(Guid userId, JToken requestBody)
        {
            var content  = JsonContent.FromObject(requestBody);
            var response = await _httpClient.PostAsync($"user/{userId}/lock", content);

            return(await response.GetContentAsync <JToken>());
        }
Beispiel #15
0
        public async Task <JToken> UpdateEvent(string eventId, JToken requestContent)
        {
            var content = JsonContent.FromObject(requestContent);
            var result  = await _delegatedHttpClient.PutAsync($"gameevent/{eventId}", content);

            return(await result.GetContentAsync <JToken>());
        }
Beispiel #16
0
        public async Task Register(JToken registrationForm)
        {
            var content  = JsonContent.FromObject(registrationForm);
            var response = await _httpClient.PostAsync("register", content);

            response.EnsureSuccessStatusCode();
        }
Beispiel #17
0
        public async Task <JToken> ResetPasswordStart(JToken passwordResetStart)
        {
            var content  = JsonContent.FromObject(passwordResetStart);
            var response = await _httpClient.PostAsync("resetpassword/start", content);

            return(await response.GetContentAsync <JToken>());
        }
        public async Task FromObject_can_be_deserialized(TestClass test)
        {
            var content = await JsonContent.FromObject(test).ReadAsStringAsync();

            TestClass obj = JsonConvert.DeserializeObject <TestClass>(content);

            Assert.That(obj.Property, Is.EqualTo(test.Property));
        }
Beispiel #19
0
        public async Task <JToken> ChangePassword(JToken passwordChange)
        {
            var content  = JsonContent.FromObject(passwordChange);
            var response = await _delegatedHttpClient.PostAsync("password", content);

            var res = await response.Content.ReadAsStringAsync();

            return(await response.GetContentAsync <JToken>());
        }
        public async Task SendAsync_with_Response_can_send_request_and_receive_response_with_body(string method, [Frozen] MockHttpMessageHandler handler, HttpRestClient sut, Uri uri, Response response)
        {
            var httpMethod = new HttpMethod(method);

            handler.When(httpMethod, uri.ToString())
            .Respond(HttpStatusCode.OK, JsonContent.FromObject(response));

            var actualResponse = await sut.SendAsync <Response>(httpMethod, uri.ToString());

            Assert.That(actualResponse, Is.EqualTo(response));
        }
        public async Task Multiple_requests_reuse_the_same_token(string methodName, OAuthOptions options, Uri requestUri, string accessToken, long expiresIn, TestClock clock)
        {
            Clock.Set(clock);

            var method = new HttpMethod(methodName);

            var httpOptions = new List <HttpMessageOptions>();

            var refreshTokenOptions = new HttpMessageOptions
            {
                HttpMethod  = HttpMethod.Post,
                RequestUri  = new Uri(requestUri, "/oauth/v1/token"),
                HttpContent = new FormUrlEncodedContent(new Dictionary <string, string>
                {
                    ["grant_type"]    = "refresh_token",
                    ["client_id"]     = options.ClientId,
                    ["client_secret"] = options.SecretKey,
                    ["redirect_uri"]  = options.RedirectUri.ToString(),
                    ["refresh_token"] = options.RefreshToken
                }),
                HttpResponseMessage = new HttpResponseMessage(HttpStatusCode.OK)
                {
                    Content = JsonContent.FromObject(new
                    {
                        access_token = accessToken,
                        expires_in   = expiresIn
                    })
                }
            };

            httpOptions.Add(refreshTokenOptions);

            var option = new HttpMessageOptions
            {
                RequestUri          = requestUri,
                HttpMethod          = method,
                HttpResponseMessage = new HttpResponseMessage(HttpStatusCode.OK)
            };

            httpOptions.Add(option);

            var client = CreateClient(options, httpOptions.ToArray());

            for (int i = 0; i < 2; i++)
            {
                var testRequest = new HttpRequestMessage(method, requestUri);
                await client.SendAsync(testRequest);
            }

            Assert.That(refreshTokenOptions.NumberOfTimesCalled, Is.EqualTo(1));
        }
        public async Task Single_request_is_authenticated_and_executed(string methodName, OAuthOptions options, Uri requestUri, string accessToken, long expiresIn, TestClock clock)
        {
            Clock.Set(clock);

            var method = new HttpMethod(methodName);

            var refreshTokenOptions = new HttpMessageOptions
            {
                HttpMethod  = HttpMethod.Post,
                RequestUri  = new Uri(requestUri, "/oauth/v1/token"),
                HttpContent = new FormUrlEncodedContent(new Dictionary <string, string>
                {
                    ["grant_type"]    = "refresh_token",
                    ["client_id"]     = options.ClientId,
                    ["client_secret"] = options.SecretKey,
                    ["redirect_uri"]  = options.RedirectUri.ToString(),
                    ["refresh_token"] = options.RefreshToken
                }),
                HttpResponseMessage = new HttpResponseMessage(HttpStatusCode.OK)
                {
                    Content = JsonContent.FromObject(new
                    {
                        access_token = accessToken,
                        expires_in   = expiresIn
                    })
                }
            };

            var randomRequestOptions = new HttpMessageOptions
            {
                RequestUri          = requestUri,
                HttpMethod          = method,
                HttpResponseMessage = new HttpResponseMessage(HttpStatusCode.OK)
            };

            var client = CreateClient(options, refreshTokenOptions, randomRequestOptions);

            using var testRequest = new HttpRequestMessage(method, requestUri);

            using var response = await client.SendAsync(testRequest);

            Assert.That(refreshTokenOptions.NumberOfTimesCalled, Is.GreaterThan(0));

            Assert.That(randomRequestOptions.HttpResponseMessage.RequestMessage.Headers.Authorization.Parameter, Is.EqualTo(accessToken));
        }
        public async Task Token_is_refreshed_if_expired(string methodName, OAuthOptions options, Uri requestUri, string accessToken, long expiresIn, TestClock clock)
        {
            Clock.Set(clock);

            var method = new HttpMethod(methodName);

            var httpOptions = new List <HttpMessageOptions>();

            var refreshTokenOptions = new HttpMessageOptions
            {
                HttpMethod  = HttpMethod.Post,
                RequestUri  = new Uri(requestUri, "/oauth/v1/token"),
                HttpContent = new FormUrlEncodedContent(new Dictionary <string, string>
                {
                    ["grant_type"]    = "refresh_token",
                    ["client_id"]     = options.ClientId,
                    ["client_secret"] = options.SecretKey,
                    ["redirect_uri"]  = options.RedirectUri.ToString(),
                    ["refresh_token"] = options.RefreshToken
                }),
                HttpResponseMessage = CreateNewResponse()
            };

            httpOptions.Add(refreshTokenOptions);


            var requestOption = new HttpMessageOptions
            {
                RequestUri          = requestUri,
                HttpMethod          = method,
                HttpResponseMessage = new HttpResponseMessage(HttpStatusCode.OK)
            };

            httpOptions.Add(requestOption);

            var client = CreateClient(options, httpOptions.ToArray());

            await MakeARequest();

            clock.AdvanceBy(TimeSpan.FromSeconds(expiresIn + 1));

            refreshTokenOptions.HttpResponseMessage = CreateNewResponse();

            await MakeARequest();

            Assert.That(refreshTokenOptions.NumberOfTimesCalled, Is.EqualTo(2));

            HttpResponseMessage CreateNewResponse()
            {
                return(new HttpResponseMessage(HttpStatusCode.OK)
                {
                    Content = JsonContent.FromObject(new
                    {
                        access_token = accessToken,
                        expires_in = expiresIn
                    })
                });
            }

            async Task MakeARequest()
            {
                var request = new HttpRequestMessage(method, requestUri);
                await client.SendAsync(request);
            }
        }