public void WhenInvalidApKey_ThenThrowExceptionForbidden()
            {
                var request = new StickerSearchRequest(ApiKeys.Invalid);

                var ex = Assert.ThrowsAsync <GiphyApiClientException>(() => _sut.SearchStickersAsync(request));

                Assert.That(ex.HttpStatusCode, Is.EqualTo(ApiStatusCodes.Forbidden));
            }
            public async Task WhenNoQuery_ThenReturnNoResults()
            {
                var request = new StickerSearchRequest(ApiKeys.Valid)
                {
                    Query = null, Limit = 1
                };

                var response = await _sut.SearchStickersAsync(request);

                Assert.That(response.Gifs.Count, Is.EqualTo(0));
            }
            public async Task WhenQueryIsSuccessful_ThenReturnResults()
            {
                var request = new StickerSearchRequest(ApiKeys.Valid)
                {
                    Query = "cheeseburgers", Limit = 1
                };

                var response = await _sut.SearchStickersAsync(request);

                Assert.That(response.Gifs.Count(), Is.EqualTo(1));
            }
 public Uri Create(StickerSearchRequest request)
 {
     return(request.AddUriParams(new Uri(_settings.BaseUrl).SetPath(@"v1/stickers/search")));
 }
Пример #5
0
        /// <summary>
        /// Replicates the functionality and requirements of the classic GIPHY search,
        /// but returns animated stickers rather than GIFs.
        /// </summary>
        /// <param name="request">Request object.</param>
        /// <param name="cancellationToken">A cancellation token that can be used by other objects or threads to receive notice of cancellation.</param>
        /// <returns>The task object representing the asynchronous operation.</returns>
        public async Task <StickerSearchResponse> SearchStickersAsync(StickerSearchRequest request, CancellationToken cancellationToken = default)
        {
            var uri = _uriFactory.Create(request);

            return(await GetAsync <StickerSearchResponse>(uri, cancellationToken));
        }