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); }
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); }