Example #1
0
        public void CrawlOnePage()
        {
            //arrange
            var loader  = new Mock <IHtmlDocumentLoader>();
            var context = new Mock <ICrawlerRepository>();
            var crawler = new CareersStackoverfowComCrawler(_logger);

            var document = new HtmlDocument();

            document.Load(new FileStream("TestData/careers/careers.results.htm", FileMode.Open));
            loader.Setup(l => l.LoadDocument("http://careers.stackoverflow.com/Jobs?searchTerm=.net,java,c%2B%2B&searchType=Any&location=&range=20&pg=1")).Returns(document);
            loader.Setup(l => l.LoadDocument("http://careers.stackoverflow.com/Jobs?searchTerm=.net,java,c%2B%2B&searchType=Any&location=&range=20&pg=2")).Returns(new HtmlDocument());
            var vacancy = new HtmlDocument();

            vacancy.Load(new FileStream("TestData/careers/vacancy.htm", FileMode.Open));
            loader.Setup(l => l.LoadDocument(It.IsRegex(@"http://careers.stackoverflow.com/jobs/(\d+)/(.*?)"))).
            Returns(vacancy);

            var storage = new List <TddDemandRecord>();

            context.Setup(c => c.Add(It.IsAny <TddDemandRecord>())).Callback((TddDemandRecord r) => storage.Add(r));

            //act
            crawler.Crawl(loader.Object, context.Object);

            //assert
            context.Verify(c => c.SaveChanges());
            Assert.That(storage.Count, Is.EqualTo(25), "Expected that all 25 jobs processed");
        }
Example #2
0
        public void Smoke()
        {
            //arrange
            var crawler = new CareersStackoverfowComCrawler(_logger);

            //act/assert
            Assert.That(crawler, Is.Not.Null);
        }