static void Main(string[] args) { var validInput = false; while (!validInput) { var searchCriteria = new SearchCriteria(); Console.WriteLine("Please enter the keyword to search"); searchCriteria.KeyWord = Console.ReadLine(); Console.WriteLine("Please enter the URL to search"); searchCriteria.InputURL = Console.ReadLine(); if (searchCriteria.HasError) { Console.Clear(); var errors = string.Join(Environment.NewLine, searchCriteria.ErrorMessages); Console.WriteLine(errors + Environment.NewLine); } else { validInput = true; } var downloadedHTML = HTMLDownloader.GetHTML(new Configuration(), searchCriteria.KeyWord); var(isURLRanked, urlPositionList) = HTMLParser.FindPosition(downloadedHTML, searchCriteria.InputURL); var result = isURLRanked ? $"Found {urlPositionList.Count} occurances for {searchCriteria.InputURL} at positions: {string.Join(", ", urlPositionList)}" : $"Found no occurances for {searchCriteria.InputURL}"; Console.WriteLine(result); Console.ReadLine(); } }
public void TestFindPosition_InvalidData() { var html = File.ReadAllText(Path.Combine(Directory.GetParent(Directory.GetCurrentDirectory()).Parent.FullName, "DummyHtml.html")); var(isURLRanked, urlPositionList) = HTMLParser.FindPosition(html, "http://www.smokeball.com.au"); Assert.IsFalse(isURLRanked); Assert.AreEqual(string.Empty, string.Join(", ", urlPositionList)); }
public void TestFindPosition_ValidData() { var html = File.ReadAllText(Path.Combine(Directory.GetParent(Directory.GetCurrentDirectory()).Parent.FullName, "DummyHtml.html")); var result = HTMLParser.FindPosition(html, "http://www.realestate.com.au"); Assert.IsTrue(result.isURLRanked); Assert.AreEqual("1, 2, 3", string.Join(", ", result.urlPositionList)); result = HTMLParser.FindPosition(html, "http://www.domain.com.au"); Assert.IsTrue(result.isURLRanked); Assert.AreEqual("4, 5", string.Join(", ", result.urlPositionList)); }