Esempio n. 1
0
        /// <summary>
        /// The translate API draws on search, but uses the GIPHY special
        /// sauce to handle translating from one vocabulary to another.
        /// In this case, words and phrases to GIFs.
        /// </summary>
        /// <param name="parameter">Specifies search parameters</param>
        /// <returns>Root object</returns>
        public async Task <GiphySingle> StickerTranslate(StickerTranslateParameter parameter)
        {
            if (parameter is null)
            {
                throw new NullReferenceException("Paramter cannot be null");
            }

            if (string.IsNullOrEmpty(parameter.Query))
            {
                throw new FormatException("Query paramter cannot be null or empty.");
            }

            /* Finish exception checks */

            string url = $@"{ _stickersTranslateUrl }?api_key={ _apiKey }&s={ parameter.Query }";

            var response = await _httpHandler.GetAsync(url);

            if (!response.IsSuccessStatusCode)
            {
                throw new HttpRequestException(response.ReasonPhrase);
            }

            return(await response.Content.ReadAsAsync <GiphySingle>());
        }
Esempio n. 2
0
        public async Task ParameterIsNull_ThrowsNullReferenceException()
        {
            var giphy = new Giphy("test");

            StickerTranslateParameter search = null;

            _ = await Assert.ThrowsAsync <NullReferenceException>(() => giphy.StickerTranslate(search));
        }
Esempio n. 3
0
        public async Task NotSuccessStatusCode_ThrowsHttpRequestException()
        {
            var mockHttpHandler = HttpHandler.GetMockFailedHttpHandlerObject();
            var giphy           = new Giphy(mockHttpHandler);
            var search          = new StickerTranslateParameter {
                Query = "test"
            };

            _ = await Assert.ThrowsAsync <HttpRequestException>(() => giphy.StickerTranslate(search));
        }
Esempio n. 4
0
        public async Task QueryNotSpecified_ThrowsFormatException()
        {
            var giphy = new Giphy("test");

            //  The query variable was not set in the paramter model
            //  which is required to run a query on giphy's api
            var search = new StickerTranslateParameter();

            _ = await Assert.ThrowsAsync <FormatException>(() => giphy.StickerTranslate(search));
        }
Esempio n. 5
0
        public async Task WhenCalled_ReturnsGiphySingle()
        {
            var mockHttpHandler = HttpHandler.GetMockSuccessHttpHandlerObject();
            var giphy           = new Giphy(mockHttpHandler);
            var search          = new StickerTranslateParameter {
                Query = "test"
            };

            var actual = await giphy.StickerTranslate(search);

            Assert.NotNull(actual);
            Assert.IsType <GiphySingle>(actual);
        }
Esempio n. 6
0
        public void Query_WhenSet_EscapesUriString()
        {
            var parameter = new StickerTranslateParameter
            {
                Query = "This is a unit test!"
            };

            var expected = "This%20is%20a%20unit%20test!";
            var actual   = parameter.Query;

            Assert.NotNull(actual);
            Assert.IsType <string>(actual);
            Assert.Equal(expected, actual);
        }