Пример #1
0
        public void AbbreviationsHarvester_WithValidParametersInConstructor_ShouldCorrectlyInitializeNewInstance()
        {
            // Arrange
            var contextWrapperMock = new Mock <IXmlContextWrapper>();
            var contextWrapper     = contextWrapperMock.Object;

            var serializerMock          = new Mock <IXmlTransformDeserializer>();
            var transformersFactoryMock = new Mock <IAbbreviationsTransformersFactory>();

            // Act
            var harvester = new AbbreviationsHarvester(contextWrapper, serializerMock.Object, transformersFactoryMock.Object);

            // Assert
            Assert.IsNotNull(harvester);

            var contextWrapperField = PrivateField.GetInstanceField(HarvesterType.BaseType, harvester, ContextWrapperFieldName);

            Assert.IsNotNull(contextWrapperField);
            Assert.IsInstanceOf <IXmlContextWrapper>(contextWrapperField);
            Assert.AreSame(contextWrapper, contextWrapperField);

            var serializerField = PrivateField.GetInstanceField(HarvesterType, harvester, SerializerFieldName);

            Assert.IsNotNull(serializerField);
            Assert.IsInstanceOf <IXmlTransformDeserializer>(serializerField);
            Assert.AreSame(serializerMock.Object, serializerField);

            var transformersFactoryField = PrivateField.GetInstanceField(HarvesterType, harvester, TransformersFactoryFieldName);

            Assert.IsNotNull(transformersFactoryField);
            Assert.IsInstanceOf <IAbbreviationsTransformersFactory>(transformersFactoryField);
            Assert.AreSame(transformersFactoryMock.Object, transformersFactoryField);
        }
Пример #2
0
        public void AbbreviationsHarvester_WithNullSerializerInConstructor_ShouldThrowArgumentNullExceptionWithCorrectParamName()
        {
            // Arrange
            var contextWrapperMock      = new Mock <IXmlContextWrapper>();
            var transformersFactoryMock = new Mock <IAbbreviationsTransformersFactory>();

            // Act + Assert
            var exception = Assert.Throws <ArgumentNullException>(() =>
            {
                var harvester = new AbbreviationsHarvester(contextWrapperMock.Object, null, transformersFactoryMock.Object);
            });

            Assert.AreEqual(SerializerFieldName, exception.ParamName);
        }
Пример #3
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);
        }