public JsonResult Search(string keyword, string searchEngineSite, string targetSite, int noFirstResult = 100)
        {
            var googleProvider   = new HtmlStringGoogleProvider();
            var htmlStringHelper = new HtmlStringHelper();
            var googleService    = new HtmlStringGoogleService(googleProvider, htmlStringHelper);
            var searchEngineUrl  = "https://www.google.com.au/search";
            var googleResult     = googleService.Search(keyword, searchEngineUrl, targetSite, noFirstResult);

            return(Json(googleResult, JsonRequestBehavior.AllowGet));
        }
        public void ParseCiteElementTest()
        {
            var googleProvider = new Mock <IHtmlStringProvider>();

            googleProvider.Setup(c => c.GetHtmlString(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <int>())).Returns(GetHtmlStringData());

            var htmlHelper = new Mock <IHtmlStringHelper>();

            htmlHelper.Setup(c => c.ListCiteElement(It.IsAny <string>())).Returns(ListCiteElementData());
            var googleService = new HtmlStringGoogleService(googleProvider.Object, htmlHelper.Object);
            var keywork       = "online title search";
            var seUrl         = "https://www.google.com.au/search";
            var result        = googleService.ParseCiteElement(keywork, seUrl, 10);

            // Assert
            Assert.IsNotNull(result);
            Assert.IsTrue(result.Count == 3);
        }
        public void SearchNotFoundTest()
        {
            var googleProvider = new Mock <IHtmlStringProvider>();

            googleProvider.Setup(c => c.GetHtmlString(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <int>())).Returns(GetHtmlStringData());

            var htmlHelper = new Mock <IHtmlStringHelper>();

            htmlHelper.Setup(c => c.ListCiteElement(It.IsAny <string>())).Returns(ListCiteElementData());
            htmlHelper.Setup(c => c.FormatSearchResult(It.IsAny <List <string> >(), It.IsAny <string>())).Returns("0");
            var googleService = new HtmlStringGoogleService(googleProvider.Object, htmlHelper.Object);
            var keywork       = "online title search";
            var targetSite    = "test.com.au";
            var seUrl         = "https://www.google.com.au/search";

            var result = googleService.Search(keywork, seUrl, targetSite, 10);

            // Assert
            Assert.IsNotNull(result);
            Assert.IsTrue(result.TotalResultCount == 0);
            Assert.IsTrue(string.Equals(result.Result, "0"));
        }