public void Print_WithThreeCodeBlockChildItems_ShouldCallPrintOnEveryChildItem() { // region 1) Arrange string inputHeaderValue = "Test"; Mock <IPrintableDocumentCodeBlock> codeBlockMock = new Mock <IPrintableDocumentCodeBlock>(); Mock <IPrintableMarkdownElementFactory> elementFactoryMock = new Mock <IPrintableMarkdownElementFactory>(); elementFactoryMock.Setup(f => f.CreateElement <IPrintableDocumentCodeBlock>()).Returns(codeBlockMock.Object); Mock <IMarkdownHeaderBuilder> headerBuilderMock = new Mock <IMarkdownHeaderBuilder>(); MarkdownSite site = new MarkdownSite(inputHeaderValue, elementFactoryMock.Object); site.SetHeaderBuilder(headerBuilderMock.Object); site.AddNewContent <IPrintableDocumentCodeBlock>(); site.AddNewContent <IPrintableDocumentCodeBlock>(); site.AddNewContent <IPrintableDocumentCodeBlock>(); // region 2) Act site.Print(); // region 3) Assert codeBlockMock.Verify(cb => cb.Print(), Times.Exactly(3)); }
public void AddNewContent_WithParagraphHyperlink_ShouldCallFactoryForCreateAParagraphHyperlink() { Mock <IPrintableMarkdownElementFactory> elementFactoryMock = new Mock <IPrintableMarkdownElementFactory>(); MarkdownSite site = new MarkdownSite("Test", elementFactoryMock.Object); site.AddNewContent <IPrintableDocumentParagraphHyperlink>(); elementFactoryMock.Verify(f => f.CreateElement <IPrintableDocumentParagraphHyperlink>(), Times.Exactly(1)); }