public Uri getUriForTrackId(string name)
        {
            if (cookieJar == null)
            {
                InitializeWebServices();
            }

            string postdata = "action=play&id=" + name;

            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(PP_URI_GET_URL);

            req.Method          = "POST";
            req.CookieContainer = cookieJar;
            req.Accept          = "application/json, text/javascript, */*";
            req.Headers.Add("X-Requested-With", "XMLHttpRequest");
            req.ContentType = "application/x-www-form-urlencoded";

            Stream requestStream = req.GetRequestStream();

            byte[] byteArray = Encoding.UTF8.GetBytes(postdata);
            requestStream.Write(byteArray, 0, byteArray.Length);
            requestStream.Close();

            HttpWebResponse res = (HttpWebResponse)req.GetResponse();

            Behavior.Assert((((int)res.StatusCode) % 100) < 4, "Error code " + res.StatusCode + " while getting track_url");
            GetUrlResponse getUrlResponse = Program.binder.Unmarshal <GetUrlResponse>(res.GetResponseStream());

            Behavior.Assert(getUrlResponse.success, "getUrlResponse Unsuccessful");
            return(new Uri(getUrlResponse.track_link));
        }
Пример #2
0
        public void Redirect_To_Original_Url_Bad_Request()
        {
            Task <GetUrlResponse> awaitable = this.urlService.GetLongUrl(null);

            try
            {
                GetUrlResponse getUrlResponse = awaitable.Result;
            }
            catch (Exception e)
            {
                Assert.AreEqual(typeof(ApiBadRequestException), e.InnerException.GetType());
                Assert.AreEqual("url can't be null", e.InnerException.Message);
            }
        }
Пример #3
0
        /// <summary>
        /// Redirects to original URL.
        /// </summary>
        /// <param name="shortUrl"></param>
        /// <returns></returns>
        /// <exception cref="ApplicationException"></exception>
        public async Task <GetUrlResponse> GetLongUrl(string shortUrl)
        {
            Ensure.NotNullOrEmpty(shortUrl, "url can't be null");

            CreateUrlResponse createUrlResponse = await this.keyValueStore.Get <CreateUrlResponse>(shortUrl);

            if (createUrlResponse == null)
            {
                throw new ApiNotFoundException($"Url {shortUrl} not found");
            }

            GetUrlResponse getUrlResponse = GetUrlResponse.Create(createUrlResponse.LongUrl);

            return(getUrlResponse);
        }
Пример #4
0
        public void Redirect_To_Original_Url()
        {
            Mock.Get(this.urlService.keyValueStore)
            .Setup(behavior => behavior.Get <CreateUrlResponse>("3HA"))
            .Returns(Task.FromResult(new CreateUrlResponse
            {
                LongUrl = "https://www.facebook.com"
            }));

            Task <GetUrlResponse> awaitable = this.urlService.GetLongUrl("3HA");

            GetUrlResponse getUrlResponse = awaitable.Result;

            Assert.NotNull(getUrlResponse);
            Assert.NotNull(getUrlResponse.Url);
            Assert.AreEqual("https://www.facebook.com", getUrlResponse.Url);
        }
Пример #5
0
        public void Redirect_To_Original_Url_Not_Found()
        {
            Mock.Get(this.urlService.keyValueStore)
            .Setup(behavior => behavior.Get <CreateUrlResponse>("3HA"))
            .Returns(Task.FromResult(default(CreateUrlResponse)));

            Task <GetUrlResponse> awaitable = this.urlService.GetLongUrl("3HA");

            try
            {
                GetUrlResponse getUrlResponse = awaitable.Result;
            }
            catch (Exception e)
            {
                Assert.AreEqual(typeof(ApiNotFoundException), e.InnerException.GetType());
                Assert.AreEqual("Url 3HA not found", e.InnerException.Message);
            }
        }