public void HtmlEntityInJobResultIsDecoded()
        {
            using (var htmlStream = new MemoryStream(Encoding.UTF8.GetBytes(String.Format(Properties.Resources.JobResultsOuterHtml, Properties.Resources.MultipleJobResults))))
            {
                var parser = new TalentLinkJobResultsHtmlParser(new TalentLinkSalaryParser());

                var jobs = parser.Parse(htmlStream);

                Assert.AreEqual("Learner Support Assistant – Bank Staff (Sussex Downs College)", jobs.Jobs[8].JobTitle);
            }
        }
        public void JobIdIsParsed()
        {
            using (var htmlStream = new MemoryStream(Encoding.UTF8.GetBytes(String.Format(Properties.Resources.JobResultsOuterHtml, Properties.Resources.MultipleJobResults))))
            {
                var parser = new TalentLinkJobResultsHtmlParser(new TalentLinkSalaryParser());

                var jobs = parser.Parse(htmlStream);

                Assert.AreEqual("33720", jobs.Jobs[0].Id);
            }
        }
        public void LastPageIsDetected()
        {
            using (var htmlStream = new MemoryStream(Encoding.UTF8.GetBytes(String.Format(Properties.Resources.JobResultsOuterHtml, Properties.Resources.LastPageOfJobs))))
            {
                var parser = new TalentLinkJobResultsHtmlParser(new TalentLinkSalaryParser());

                var jobs = parser.Parse(htmlStream);

                Assert.AreEqual(true, jobs.IsLastPage);
            }
        }
        public void NoJobsFoundIsParsedCorrectly()
        {
            using (var htmlStream = new MemoryStream(Encoding.UTF8.GetBytes(String.Format(Properties.Resources.JobResultsOuterHtml, Properties.Resources.NoJobsResult))))
            {
                var parser = new TalentLinkJobResultsHtmlParser(new TalentLinkSalaryParser());

                var jobs = parser.Parse(htmlStream);

                Assert.AreEqual(0, jobs.Jobs.Count);
            }
        }
        public void OrganisationIsParsed()
        {
            using (var htmlStream = new MemoryStream(Encoding.UTF8.GetBytes(String.Format(Properties.Resources.JobResultsOuterHtml, Properties.Resources.MultipleJobResults))))
            {
                var parser = new TalentLinkJobResultsHtmlParser(new TalentLinkSalaryParser());

                var jobs = parser.Parse(htmlStream);

                Assert.AreEqual("Sussex Downs College", jobs.Jobs[9].Organisation);
            }
        }
        public void SalaryIsParsed()
        {
            using (var htmlStream = new MemoryStream(Encoding.UTF8.GetBytes(String.Format(Properties.Resources.JobResultsOuterHtml, Properties.Resources.MultipleJobResults))))
            {
                var parser = new TalentLinkJobResultsHtmlParser(new TalentLinkSalaryParser());

                var jobs = parser.Parse(htmlStream);

                Assert.AreEqual("£20000–£24999 per annum", jobs.Jobs[2].Salary.SalaryRange);
            }
        }
        public async Task JobIdIsParsed()
        {
            using (var htmlStream = new MemoryStream(Encoding.UTF8.GetBytes(String.Format(Properties.Resources.JobResultsOuterHtml, Properties.Resources.MultipleJobResults))))
            {
                var parser = new TalentLinkJobResultsHtmlParser(new TalentLinkSalaryFromDescriptionParser());

                var jobs = await parser.Parse(htmlStream);

                Assert.AreEqual(33720, jobs.Jobs[0].Id);
            }
        }
        public async Task PresenceOfMorePagesIsDetected()
        {
            using (var htmlStream = new MemoryStream(Encoding.UTF8.GetBytes(String.Format(Properties.Resources.JobResultsOuterHtml, Properties.Resources.MultipleJobResults))))
            {
                var parser = new TalentLinkJobResultsHtmlParser(new TalentLinkSalaryFromDescriptionParser());

                var jobs = await parser.Parse(htmlStream);

                Assert.AreEqual(false, jobs.IsLastPage);
            }
        }
        public async Task SalaryIsParsed()
        {
            using (var htmlStream = new MemoryStream(Encoding.UTF8.GetBytes(String.Format(Properties.Resources.JobResultsOuterHtml, Properties.Resources.MultipleJobResults))))
            {
                var parser = new TalentLinkJobResultsHtmlParser(new TalentLinkSalaryFromDescriptionParser());

                var jobs = await parser.Parse(htmlStream);

                Assert.AreEqual("£20,000 to £24,999 per annum", jobs.Jobs[2].Salary.SalaryRange);
            }
        }
        public void ClosingDateIsParsedAsUkDate()
        {
            using (var htmlStream = new MemoryStream(Encoding.UTF8.GetBytes(String.Format(Properties.Resources.JobResultsOuterHtml, Properties.Resources.MultipleJobResults))))
            {
                var parser = new TalentLinkJobResultsHtmlParser(new TalentLinkSalaryParser());

                var jobs = parser.Parse(htmlStream);

                // this date is invalid if parsed as a US date
                Assert.AreEqual(new DateTime(2017, 1, 30), jobs.Jobs[3].ClosingDate);
            }
        }