public void ReadXmlStream_FromExportedXml_ShouldCallXmlTransferWithExactNumberOfPageTypes()
        {
            var xmlTransferMock = new Mock<IXmlElementParser>();
            int pageTypeCount = 0;
            xmlTransferMock.Setup(x => x.ParseElement(It.IsAny<XmlReader>())).Callback<XmlReader>(r =>
            {
                r.ReadToDescendant("PageType");
                do {
                    pageTypeCount++;
                }
                while (r.ReadToNextSibling("PageType"));
            });

            xmlTransferMock.Setup(x => x.SupportsCurrentElement(It.IsAny<XmlReader>(), It.IsAny<int>()))
                .Returns<XmlReader, int>((r, x) => r.IsStartElement("pagetypes"));

            var subject = new ImportPackageReader(new IXmlElementParser[] { xmlTransferMock.Object }, null);

            using (var xmlReader = CreateReader("OverlookExport.xml"))
            {
                subject.ReadXmlStream(xmlReader);
            }

            Assert.AreEqual(OverlookPageTypeCount, pageTypeCount);
        }
Example #2
0
        public void ReadXmlStream_FromExportedXml_ShouldCallXmlTransferWithExactNumberOfPageTypes()
        {
            var xmlTransferMock = new Mock <IXmlElementParser>();
            int pageTypeCount   = 0;

            xmlTransferMock.Setup(x => x.ParseElement(It.IsAny <XmlReader>())).Callback <XmlReader>(r =>
            {
                r.ReadToDescendant("PageType");
                do
                {
                    pageTypeCount++;
                }while (r.ReadToNextSibling("PageType"));
            });

            xmlTransferMock.Setup(x => x.SupportsCurrentElement(It.IsAny <XmlReader>(), It.IsAny <int>()))
            .Returns <XmlReader, int>((r, x) => r.IsStartElement("pagetypes"));

            var subject = new ImportPackageReader(new IXmlElementParser[] { xmlTransferMock.Object }, null);

            using (var xmlReader = CreateReader("OverlookExport.xml"))
            {
                subject.ReadXmlStream(xmlReader);
            }

            Assert.AreEqual(OverlookPageTypeCount, pageTypeCount);
        }
Example #3
0
        public void ReadXmlStream_FromExportedXml_ShouldCallContentTypeRepositoryOnceForEachPageType()
        {
            var repository  = new Mock <IContentTypeWriter>();
            var xmlTransfer = new PageTypeElementParser(new Mock <IContentTypeMapper>().Object, repository.Object, null);
            var subject     = new ImportPackageReader(new IXmlElementParser[] { xmlTransfer }, null);

            using (var xmlReader = CreateReader("OverlookExport.xml"))
            {
                subject.ReadXmlStream(xmlReader);
            }

            repository.Verify(x => x.Write(It.IsAny <ContentType>()), Times.Exactly(OverlookPageTypeCount));
        }
        public void ReadXmlStream_FromExportedXml_ShouldCallContentTypeRepositoryOnceForEachPageType()
        {
            var repository = new Mock<IContentTypeWriter>();
            var xmlTransfer = new PageTypeElementParser(new Mock<IContentTypeMapper>().Object, repository.Object, null);
            var subject = new ImportPackageReader(new IXmlElementParser[] { xmlTransfer }, null);

            using (var xmlReader = CreateReader("OverlookExport.xml"))
            {
                subject.ReadXmlStream(xmlReader);
            }

            repository.Verify(x => x.Write(It.IsAny<ContentType>()), Times.Exactly(OverlookPageTypeCount));
        }