public void ParseAllMicroSchemaTest()
        {
            HtmlDocument doc = CreateHtmlDocFromFile("TestData/Jobs.html");

            var microSchemaParser = new MicroSchemaParser(doc);
            var schemas           = microSchemaParser.Parse();

            Assert.IsTrue(schemas.Count() > 0);
        }
        public void ParseNullMicroSchemaTest()
        {
            HtmlDocument doc = CreateHtmlDocFromUrl("http://www.google.com/");

            var microSchemaParser = new MicroSchemaParser(doc);
            var schemas           = microSchemaParser.Parse();

            Assert.AreEqual(schemas.Count(), 0);
        }
示例#3
0
        public void ParseAllMicroSchemaTest()
        {
            HtmlDocument doc = CreateHtmlDocFromFile("TestData/Jobs.html");

            var microSchemaParser = new MicroSchemaParser(doc);
            var schemas           = microSchemaParser.Parse();

            Assert.IsTrue(schemas.Count() > 0);

            Assert.AreEqual(schemas[0].Name, "Book");
            Assert.AreEqual(schemas[0].Fields[0].FieldName, "isbn");
            Assert.AreEqual(schemas[0].Fields[0].GetFieldValue(), "9780030426599");

            Assert.IsTrue(schemas[1] is ItemListSchema);
            Assert.AreEqual(schemas[1].Name, "ItemList");
        }
        public void ParseItemListSchemaTest()
        {
            HtmlDocument doc = CreateHtmlDocFromFile("TestData/Jobs.html");

            var microSchemaParser = new MicroSchemaParser(doc);
            var schemaResult      = microSchemaParser.Find <ItemListSchema>();

            // Test result
            Assert.IsNotNull(schemaResult);

            // Test validating
            var validateResult = schemaResult.Validate();

            Assert.AreEqual(validateResult, SchemaValidatedStatus.Success);

            // Test get child links
            var listItemLinks = schemaResult.GetListItemLinks();

            Assert.AreEqual(listItemLinks.Count(), 6);
        }
        public void ParseJobPostingSchemaTest()
        {
            HtmlDocument doc = CreateHtmlDocFromFile("TestData/JobDetail.html");

            var microSchemaParser = new MicroSchemaParser(doc);
            var schemaResult      = microSchemaParser.Find <JobPostingSchema>();

            // Test result
            Assert.IsNotNull(schemaResult);

            var titleField              = schemaResult.Fields.FirstOrDefault(n => n.FieldName == "title");
            var jobBenefitsField        = schemaResult.Fields.FirstOrDefault(n => n.FieldName == "jobBenefits");
            var datePostedField         = schemaResult.Fields.FirstOrDefault(n => n.FieldName == "datePosted");
            var hiringOrganizationField = schemaResult.Fields.FirstOrDefault(n => n.FieldName == "hiringOrganization");
            var jobLocationField        = schemaResult.Fields.FirstOrDefault(n => n.FieldName == "jobLocation");

            Assert.AreEqual(titleField.GetFieldValue().ToString(), "API Developer");
            Assert.AreEqual(jobBenefitsField.GetFieldValue().ToString(), "£24,000 - £32,000 + healthcare, flexitime, free beer, early Friday finish and more!");

            Assert.IsTrue(datePostedField.GetFieldValue() is DateTime);
            Assert.AreEqual(datePostedField.GetFieldValue().ToString(), "09/01/2018 00:00:00");

            Assert.AreEqual(hiringOrganizationField.GetFieldValue().ToString(), "Firefish Software");

            Assert.AreEqual(jobLocationField.GetFieldValue(), null);
            Assert.AreEqual(jobLocationField.SchemaItems.Count(), 1);
            Assert.IsTrue(jobLocationField.SchemaItems[0] is PlaceSchema);
            Assert.AreEqual(jobLocationField.SchemaItems[0].Fields[0].GetFieldValue(), null);
            Assert.IsTrue(jobLocationField.SchemaItems[0].Fields[0].SchemaItems[0] is PostalAddressSchema);
            Assert.AreEqual(jobLocationField.SchemaItems[0].Fields[0].SchemaItems[0].Fields[0].GetFieldValue(), "Glasgow");

            // Test validation
            var validateResult = schemaResult.Validate();

            Assert.AreEqual(validateResult, SchemaValidatedStatus.Warning);
        }