Beispiel #1
0
        public void Test_Search_Parse_First_Page()
        {
            var dir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

            UrlResponsePair pair = new UrlResponsePair(@"/search/movie/love/results?page=0",
                                                       File.ReadAllText(dir + @"\TestData\search_love_0.txt"), 1, 10);

            SearchRequestItem item = new SearchRequestItem("1", "love", "movie", "offset=11&limit=65");

            item.Urls = new List <string>();
            item.Urls.Add(@"/search/movie/love/results?page=0");
            item.Urls.Add(@"/search/movie/love/results?page=1");
            item.Urls.Add(@"/search/movie/love/results?page=2");
            item.Urls.Add(@"/search/movie/love/results?page=3");
            IMetacriticData resp = item.Parse(pair);

            CollectionAssert.AllItemsAreInstancesOfType(((SearchData)resp).SearchItems,
                                                        typeof(SearchData.SearchItem));
            Assert.AreEqual(((SearchData)resp).TotalResultCount, 238);
            Assert.AreEqual(((SearchData)resp).SearchItems.Count, 10);
            Assert.AreEqual(((SearchData)resp).SearchItems[0].Title, "After Love");
            Assert.AreEqual(((SearchData)resp).SearchItems[5].Id, "/movie/love-rosie");
            Assert.AreEqual(((SearchData)resp).SearchItems[8].ReleaseDate, "April 11, 2014");
            Assert.AreEqual(((SearchData)resp).SearchItems[9].Rating.CriticRating, 39);
        }
Beispiel #2
0
        public void Test_Search_Scrape()
        {
            var    dir       = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
            string testData0 = File.ReadAllText(dir + @"\TestData\search_love_0.txt");
            string testData1 = File.ReadAllText(dir + @"\TestData\search_love_1.txt");
            string testData2 = File.ReadAllText(dir + @"\TestData\search_love_2.txt");
            string testData3 = File.ReadAllText(dir + @"\TestData\search_love_3.txt");

            var webUtils = new Mock <IWebUtils>();

            webUtils.SetupSequence(p => p.HttpGet(It.IsAny <string>(), It.IsAny <string>(),
                                                  It.IsAny <int>())).
            Returns(Task.FromResult(testData0)).
            Returns(Task.FromResult(testData1));

            SearchRequestItem item = new SearchRequestItem("1", "love", "movie", "offset=11&limit=65");

            item.Urls = new List <string>();
            item.Urls.Add(@"/search/movie/love/results?page=0");
            item.Urls.Add(@"/search/movie/love/results?page=1");
            item.WebUtils = webUtils.Object;
            List <UrlResponsePair> resp = item.Scrape();

            Assert.AreEqual(resp.Count, 2);
            Assert.AreEqual(resp[0].SearchItemCount, 10);
            Assert.AreEqual(resp[1].SearchItemCount, 10);
            Assert.AreEqual(resp[0].SequenceNo, 1);
            Assert.AreEqual(resp[1].SequenceNo, 2);
        }
Beispiel #3
0
        public void Test_Search_FilterValidUrls_WithLimitAndOffset3()
        {
            string            param = "offset=61&limit=20";
            SearchRequestItem item  = new SearchRequestItem("1", "heart", "tvshow", param);

            item.FilterValidUrls();

            Assert.AreEqual(item.Urls.Count, 1);
            Assert.AreEqual(item.Urls[0], "search/tv/heart/results?page=3&sort=");
        }
Beispiel #4
0
        public void Test_Search_FilterValidUrls_WithLimitAndOffset2()
        {
            // limit max is 20
            string            param = "offset=20&limit=56";
            SearchRequestItem item  = new SearchRequestItem("1", "heart", "tvshow", param);

            item.FilterValidUrls();

            Assert.AreEqual(item.Urls.Count, 2);
            Assert.AreEqual(item.Urls[0], "search/tv/heart/results?page=0&sort=");
            Assert.AreEqual(item.Urls[1], "search/tv/heart/results?page=1&sort=");
        }
 string GetSearchQueryStr(SearchRequestItem item)
 {
     var result = new (string Field, string Value)[] {