public void CreateOverview_WithTargetContainingXmlExampleHelp_ShouldCallCreationForNewChapterNamedExample() { string exampleStringContent = "<TestXml>Content</TestXml>"; Mock <IMsBuildTarget> targetMock = new Mock <IMsBuildTarget>(); Mock <IPrintableDocumentChapter> chapterMock = new Mock <IPrintableDocumentChapter>(); Mock <IPrintableDocumentCodeBlock> codeBlockMock = new Mock <IPrintableDocumentCodeBlock>(); Mock <ITestPrintable> testPrintableMock = new Mock <ITestPrintable>(); chapterMock.Setup(cm => cm.AddNewContent <IPrintableDocumentCodeBlock>()).Returns(codeBlockMock.Object); testPrintableMock.Setup(tpm => tpm.AddNewChapter(It.Is <string>(s => s == "Example"))) .Returns(chapterMock.Object); IMsBuildElementHelp elementHelpMock = MsBuildTestDataBuilder.Create <IMsBuildTarget>() .SetName("TargetA") .WithHelp() .AddHelpParagraph("EXAMPLE", exampleStringContent) .Build(); targetMock.Setup(tm => tm.Help).Returns(elementHelpMock); Mock <PrintableDocument <ITestPrintable> > printableDocumentMock = new Mock <PrintableDocument <ITestPrintable> >(); printableDocumentMock.Setup(pdm => pdm.Create(It.IsAny <string>())).Returns(testPrintableMock.Object); TargetOverviewSiteGenerator <ITestPrintable> targetOverviewSiteGenerator = new TargetOverviewSiteGenerator <ITestPrintable>(printableDocumentMock.Object); IPrintableDocument printableDocument = targetOverviewSiteGenerator.CreateOverview(targetMock.Object); testPrintableMock.Verify(tpm => tpm.AddNewChapter(It.Is <string>(s => s == "Example")), Times.Exactly(1)); }
CreateOverview_WithTargetContainingTwoParameterDescriptionsAsHelpContent_ShouldAppendTwoParameterSectionsWithParameterName() { #region 1) Arrange string targetDescriptionText = "This is the target parameter"; IMsBuildElementHelp help = MsBuildTestDataBuilder.Create <IMsBuildTarget>() .SetName("TargetA") .WithHelp() .AddHelpParagraph("PARAMETER", targetDescriptionText, "$(ParamPropertyOne)") .AddHelpParagraph("PARAMETER", targetDescriptionText, "$(ParamPropertyTwo)") .Build(); Mock <IMsBuildTarget> targetMock = new Mock <IMsBuildTarget>(); targetMock.Setup(t => t.Name).Returns("TargetA"); targetMock.Setup(t => t.Help).Returns(help); Mock <IPrintableDocumentChapterStringContent> chapterContentMock = new Mock <IPrintableDocumentChapterStringContent>(); chapterContentMock.SetupSet(cc => cc.Content = It.IsAny <string>()).Verifiable(); Mock <IPrintableDocumentParagraph> paragraphMock = new Mock <IPrintableDocumentParagraph>(); Mock <IPrintableDocumentChapter> chapterMock = new Mock <IPrintableDocumentChapter>(); chapterMock.Setup(c => c.AddNewParagraph(It.IsAny <string>())).Returns(paragraphMock.Object); paragraphMock.Setup(p => p.AddNewContent <IPrintableDocumentChapterStringContent>()) .Returns(chapterContentMock.Object); Mock <IMarkdownDocument> markdownDocumentMock = new Mock <IMarkdownDocument>(); markdownDocumentMock.Setup(md => md.DefaultFileExtension).Returns("md"); markdownDocumentMock.Setup(md => md.AddNewChapter(It.IsAny <string>())).Returns(chapterMock.Object); Mock <PrintableDocument <IMarkdownDocument> > printableDocumentMock = new Mock <PrintableDocument <IMarkdownDocument> >(); printableDocumentMock.Setup(pd => pd.Create(It.IsAny <string>())) .Returns(markdownDocumentMock.Object); TargetOverviewSiteGenerator <IMarkdownDocument> markdownTargetDocumentGenerator = new TargetOverviewSiteGenerator <IMarkdownDocument>(printableDocumentMock.Object); #endregion // 2) Act IPrintableDocument document = markdownTargetDocumentGenerator.CreateOverview(targetMock.Object); // 3) Assert chapterMock.Verify( cm => cm.AddNewParagraph(It.Is <string>(s => s.Equals("Parameter $(ParamPropertyOne)"))), Times.Exactly(1)); chapterMock.Verify( cm => cm.AddNewParagraph(It.Is <string>(s => s.Equals("Parameter $(ParamPropertyTwo)"))), Times.Exactly(1)); }
public void CreateOverview_WithTargetContainingDescriptionAsHelpContent_ShouldSetCorrectDescriptionContent() { #region 1) Arrange string targetDescriptionText = "This is the target description"; IMsBuildElementHelp help = MsBuildTestDataBuilder.Create <IMsBuildTarget>() .SetName("TargetA") .WithHelp() .AddHelpParagraph("DESCRIPTION", targetDescriptionText, "$(ParamPropertyOne)") .Build(); Mock <IMsBuildTarget> targetMock = new Mock <IMsBuildTarget>(); targetMock.Setup(t => t.Name).Returns("TargetA"); targetMock.Setup(t => t.Help).Returns(help); Mock <IPrintableDocumentChapterStringContent> chapterContentMock = new Mock <IPrintableDocumentChapterStringContent>(); chapterContentMock.SetupSet(cc => cc.Content = It.IsAny <string>()).Verifiable(); Mock <IPrintableDocumentChapter> chapterMock = new Mock <IPrintableDocumentChapter>(); chapterMock.Setup(c => c.AddNewContent <IPrintableDocumentChapterStringContent>()) .Returns(chapterContentMock.Object); Mock <IMarkdownDocument> markdownDocumentMock = new Mock <IMarkdownDocument>(); markdownDocumentMock.Setup(md => md.DefaultFileExtension).Returns("md"); markdownDocumentMock.Setup(md => md.AddNewChapter(It.IsAny <string>())).Returns(chapterMock.Object); Mock <PrintableDocument <IMarkdownDocument> > printableDocumentMock = new Mock <PrintableDocument <IMarkdownDocument> >(); printableDocumentMock.Setup(pd => pd.Create(It.IsAny <string>())) .Returns(markdownDocumentMock.Object); TargetOverviewSiteGenerator <IMarkdownDocument> markdownTargetDocumentGenerator = new TargetOverviewSiteGenerator <IMarkdownDocument>(printableDocumentMock.Object); #endregion // 2) Act IPrintableDocument document = markdownTargetDocumentGenerator.CreateOverview(targetMock.Object); // 3) Assert chapterContentMock.VerifySet(cc => cc.Content = It.Is <string>( s => s.Trim().Equals(targetDescriptionText))); }
CreateOverview_WithTargetContainingDescriptionAsHelpContent_ShouldCallCreationOfNewDocumentChapterNamedDescription() { #region 1) Arrange IMsBuildElementHelp help = MsBuildTestDataBuilder.Create <IMsBuildTarget>() .SetName("TargetA") .WithHelp() .AddHelpParagraph("DESCRIPTION", "This is a target description", "$(ParamPropertyOne)") .Build(); Mock <IMsBuildTarget> targetMock = new Mock <IMsBuildTarget>(); targetMock.Setup(t => t.Name).Returns("TargetA"); targetMock.Setup(t => t.Help).Returns(help); Mock <IPrintableDocumentChapterStringContent> chapterContentMock = new Mock <IPrintableDocumentChapterStringContent>(); Mock <IPrintableDocumentChapter> chapterMock = new Mock <IPrintableDocumentChapter>(); chapterMock.Setup(c => c.AddNewContent <IPrintableDocumentChapterStringContent>()) .Returns(chapterContentMock.Object); Mock <IMarkdownDocument> markdownDocumentMock = new Mock <IMarkdownDocument>(); markdownDocumentMock.Setup(md => md.DefaultFileExtension).Returns("md"); markdownDocumentMock.Setup(md => md.AddNewChapter(It.IsAny <string>())).Returns(chapterMock.Object); Mock <PrintableDocument <IMarkdownDocument> > printableDocumentMock = new Mock <PrintableDocument <IMarkdownDocument> >(); printableDocumentMock.Setup(pd => pd.Create(It.IsAny <string>())) .Returns(markdownDocumentMock.Object); TargetOverviewSiteGenerator <IMarkdownDocument> markdownTargetDocumentGenerator = new TargetOverviewSiteGenerator <IMarkdownDocument>(printableDocumentMock.Object); #endregion // 2) Act IPrintableDocument document = markdownTargetDocumentGenerator.CreateOverview(targetMock.Object); // 3) Assert markdownDocumentMock.Verify(md => md.AddNewChapter( It.Is <string>(s => s.Equals("Description", StringComparison.OrdinalIgnoreCase))), Times.Exactly(1)); }
CreateOverview_WithTargetContainingTwoXmlExampleHelps_ShouldAppendContentToBothCreatedPrintableCodeBlock() { string exampleStringContentOne = "<TestXml>Content</TestXml>"; string exampleStringContentTwo = "<TestXml>AnotherContent</TestXml>"; Mock <IMsBuildTarget> targetMock = new Mock <IMsBuildTarget>(); Mock <IPrintableDocumentChapter> chapterMock = new Mock <IPrintableDocumentChapter>(); Mock <IPrintableDocumentCodeBlock> codeBlockMock = new Mock <IPrintableDocumentCodeBlock>(); Mock <ITestPrintable> testPrintableMock = new Mock <ITestPrintable>(); chapterMock.Setup(cm => cm.AddNewContent <IPrintableDocumentCodeBlock>()).Returns(codeBlockMock.Object); testPrintableMock.Setup(tpm => tpm.AddNewChapter(It.Is <string>(s => s == "Example"))) .Returns(chapterMock.Object); IMsBuildElementHelp elementHelpMock = MsBuildTestDataBuilder.Create <IMsBuildTarget>() .SetName("TargetA") .WithHelp() .AddHelpParagraph("EXAMPLE", exampleStringContentOne) .AddHelpParagraph("EXAMPLE", exampleStringContentTwo) .Build(); targetMock.Setup(tm => tm.Help).Returns(elementHelpMock); Mock <PrintableDocument <ITestPrintable> > printableDocumentMock = new Mock <PrintableDocument <ITestPrintable> >(); printableDocumentMock.Setup(pdm => pdm.Create(It.IsAny <string>())).Returns(testPrintableMock.Object); TargetOverviewSiteGenerator <ITestPrintable> targetOverviewSiteGenerator = new TargetOverviewSiteGenerator <ITestPrintable>(printableDocumentMock.Object); IPrintableDocument printableDocument = targetOverviewSiteGenerator.CreateOverview(targetMock.Object); codeBlockMock.Verify(cbm => cbm.AppendContentLine(It.IsAny <string>()), Times.Exactly(2)); codeBlockMock.Verify(cbm => cbm.AppendContentLine(exampleStringContentOne), Times.Once); codeBlockMock.Verify(cbm => cbm.AppendContentLine(exampleStringContentTwo), Times.Once); }