Esempio n. 1
0
        public async Task WhenCredentialInvalidTwoRequestsSent()
        {
            var httpSenderMock = new Mock <IHttpRequestSender>();

            var query = new StubQuery
            {
                Item1 = "Value"
            };
            var accessToken = "access_token";

            using (ApiRequestSender apiRequestSender = new ApiRequestSender(
                       new Configuration {
                BaseUrl = new Uri("https://example.bynder.com"),
            },
                       GetCredentials(false, accessToken),
                       httpSenderMock.Object
                       ))
            {
                var apiRequest = new ApiRequest <bool>()
                {
                    Path       = "/fake/api",
                    HTTPMethod = HttpMethod.Get,
                    Query      = query
                };

                await apiRequestSender.SendRequestAsync(apiRequest);

                httpSenderMock.Verify(sender => sender.SendHttpRequest(
                                          It.Is <HttpRequestMessage>(
                                              req => req.RequestUri.PathAndQuery.Contains("/oauth2/token") &&
                                              req.Method == HttpMethod.Post
                                              )));

                httpSenderMock.Verify(sender => sender.SendHttpRequest(
                                          It.Is <HttpRequestMessage>(
                                              req => req.RequestUri.PathAndQuery.Contains("/fake/api") &&
                                              req.Method == HttpMethod.Get &&
                                              req.Headers.Authorization.ToString() == $"Bearer {accessToken}" &&
                                              req.RequestUri.Query.Contains("Item1=Value")
                                              )));

                httpSenderMock.Verify(sender => sender.SendHttpRequest(
                                          It.IsAny <HttpRequestMessage>()
                                          ), Times.Exactly(2));
            }
        }
Esempio n. 2
0
        public async Task WhenRequestIsPostThenParametersAreAddedToContent()
        {
            var httpSenderMock = new Mock <IHttpRequestSender>();
            var query          = new StubQuery
            {
                Item1 = "Value"
            };
            var accessToken = "access_token";

            using (ApiRequestSender apiRequestSender = new ApiRequestSender(
                       new Configuration {
                BaseUrl = new Uri("https://example.bynder.com"),
            },
                       GetCredentials(true, accessToken),
                       httpSenderMock.Object
                       ))
            {
                var apiRequest = new ApiRequest <bool>()
                {
                    Path       = "/fake/api",
                    HTTPMethod = HttpMethod.Post,
                    Query      = query
                };

                await apiRequestSender.SendRequestAsync(apiRequest);

                httpSenderMock.Verify(sender => sender.SendHttpRequest(
                                          It.Is <HttpRequestMessage>(
                                              req => req.RequestUri.PathAndQuery.Contains("/fake/api") &&
                                              req.Method == HttpMethod.Post &&
                                              req.Headers.Authorization.ToString() == $"Bearer {accessToken}" &&
                                              req.Content.ReadAsStringAsync().Result.Contains("Item1=Value")
                                              )));

                httpSenderMock.Verify(sender => sender.SendHttpRequest(
                                          It.IsAny <HttpRequestMessage>()
                                          ), Times.Once);
            }
        }