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