/// <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); }
/// <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); }
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)); } }
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); } }