public void ExternalLinksHarvester_WithSampleXmlFile_ShouldExtractCorrectlyExternalLinks()
        {
            // Arrange
            const int ExpectedNumberOfExternalLinks          = 10;
            const int ExpectedNumberOfExternalLinksOfTypeDoi = 9;

            var xmlFileName = $"{ConfigurationManager.AppSettings["SampleFiles"]}/article-with-external-links.xml";
            var document    = new XmlDocument
            {
                PreserveWhitespace = true
            };

            document.Load(xmlFileName);

            var contextWrapper = new XmlContextWrapper();

            var deserializer = new XmlDeserializer();
            var serializer   = new XmlTransformDeserializer(deserializer);

            var xslCache    = new XslTransformCache();
            var transformer = new XslTransformer(
                ConfigurationManager.AppSettings[AppSettingsKeys.ExternalLinksXslFileName],
                xslCache);
            var transformersFactoryMock = new Mock <IExternalLinksTransformersFactory>();

            transformersFactoryMock
            .Setup(f => f.GetExternalLinksTransformer())
            .Returns(transformer);

            var harvester = new ExternalLinksHarvester(contextWrapper, serializer, transformersFactoryMock.Object);

            // Act
            var externalLinks = harvester.Harvest(document.DocumentElement).Result?.ToList();

            // Assert
            Assert.IsNotNull(externalLinks);
            externalLinks.ForEach(i => Console.WriteLine("{0} | {1} | {2}", i.BaseAddress, i.Uri, i.Value));

            Assert.AreEqual(ExpectedNumberOfExternalLinks, externalLinks.Count);

            var doiExternalLinks = externalLinks.Where(i => i.BaseAddress.Contains("doi.org")).ToList();

            Assert.AreEqual(ExpectedNumberOfExternalLinksOfTypeDoi, doiExternalLinks.Count);
        }
Exemplo n.º 2
0
        public void AbbreviationsHarvester_HarvestSampleDocument_ShouldSucceed()
        {
            // Arrange
            const int ExpectedNumberOfAbbreviations = 22;

            var         xmlFileName = $"{ConfigurationManager.AppSettings["SampleFiles"]}/article-with-abbrev.xml";
            XmlDocument document    = new XmlDocument
            {
                PreserveWhitespace = true
            };

            document.Load(xmlFileName);

            var contextWrapper = new XmlContextWrapper();

            var deserializer = new XmlDeserializer();
            var serializer   = new XmlTransformDeserializer(deserializer);

            var xqueryCache = new XQueryTransformCache();
            var transformer = new XQueryTransformer(
                ConfigurationManager.AppSettings[AppSettingsKeys.AbbreviationsXQueryFileName],
                xqueryCache);
            var transformersFactoryMock = new Mock <IAbbreviationsTransformersFactory>();

            transformersFactoryMock
            .Setup(f => f.GetAbbreviationsTransformer())
            .Returns(transformer);

            var harvester = new AbbreviationsHarvester(contextWrapper, serializer, transformersFactoryMock.Object);

            // Act
            var abbreviations = harvester.Harvest(document.DocumentElement).Result?.ToList();

            Assert.IsNotNull(abbreviations);
            abbreviations.ForEach(i => Console.WriteLine("{0} | {1} | {2}", i.Value, i.ContentType, i.Definition));

            Assert.AreEqual(ExpectedNumberOfAbbreviations, abbreviations.Count);
        }