Esempio n. 1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="T:Sdk.Service.Client"/> class.
 /// </summary>
 /// <param name="configuration">Client configuration.</param>
 public BynderClient(Configuration configuration)
 {
     new ConfigurationValidator().Validate(configuration);
     _configuration     = configuration;
     _credentials       = new Credentials();
     _requestSender     = ApiRequestSender.Create(_configuration, _credentials, this);
     _assetService      = new AssetService(_requestSender);
     _collectionService = new CollectionService(_requestSender);
     _oauthService      = new OAuthService(_configuration, _credentials, _requestSender);
 }
Esempio n. 2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="T:Sdk.Service.Client"/> class.
 /// </summary>
 /// <param name="configuration">Client configuration.</param>
 public BynderClient(Configuration configuration)
 {
     new ConfigurationValidator().Validate(configuration);
     _configuration = configuration;
     if (configuration.PermanentToken != null)
     {
         _credentials = new Credentials(configuration.PermanentToken);
     }
     else
     {
         _credentials = new Credentials(configuration.Token);
     }
     _requestSender = ApiRequestSender.Create(_configuration, _credentials);
 }
Esempio n. 3
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. 4
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);
            }
        }