public void GetSuggestionsSuccess() { var parser = new ProductParser(); var original_seeds = new List <string> { "1seed", "2seed", "3seed" }; var urls = new ConcurrentQueue <string>(); var jsonStr = @"[""suit"",[""suitcase"",""suits season 8""],[{""nodes"":[{""name"":""Luggage & Travel Gear"",""alias"":""fashion-luggage""}]},{},{},{},{},{},{},{},{},{}],[],""3XPFVRN05ZSW""]"; var mock = new Mock <IHttpClientFactory>(); var testClient = new HttpClient(new TestCompletionHandler(urls, jsonStr)); mock.Setup(x => x.CreateClient(string.Empty)).Returns(testClient); var rake = new RakeAlgorithm(TestEnvironment.STOPLIST, 3, 2); var keyWordsService = new KeywordsService(parser, rake, mock.Object); var suggests = keyWordsService.GetSuggestionsAsync(original_seeds.ToArray()).Result; Assert.AreEqual(suggests.Count, 2, "Invalid count suggests"); var msg = "Suggests does not contains"; Assert.True(suggests.Contains("suitcase"), msg + "suitcase"); Assert.True(suggests.Contains("suits season 8"), msg + "suits season 8"); Assert.AreEqual(urls.Count, 3 * 37, "Invalid count urls"); }
public void KeyWordsGenerateTest() { var rake = new RakeAlgorithm(TestEnvironment.STOPLIST, 3, 2); var parser = new ProductParser(); var mock = new Mock <IHttpClientFactory>(); var testClient = new HttpClient(new TestProductPageHandler()); mock.Setup(x => x.CreateClient(string.Empty)).Returns(testClient); var keyWordsService = new KeywordsService(parser, rake, mock.Object); var keyWords = keyWordsService.ExctractKeywordsForProductPageAsync("https://www.amazon.com/dp/B079P5Q8T6/ref=sspa_dk_detail_2?psc=1https://www.amazon.com/dp/B079P5Q8T6/ref=sspa_dk_detail_2?psc=1").Result; Assert.AreEqual(keyWords.Count, 10, "Invalid count keyWords"); var msg = "There are not keyword {0}"; var listKeyWords = new List <string>() { "e5 men", "ncaa hoodie", "machine washable", "school pride", "hoodie features", "embroidered school", "game day", "hands cozy", "season long", "imported" }; foreach (var keyWord in listKeyWords) { Assert.True(keyWords.Contains(keyWord), string.Format(msg, keyWord)); } }