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); }
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); }
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="); }
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)[] {