예제 #1
0
        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();
            }
        }
예제 #2
0
        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));
        }
예제 #3
0
        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));
        }