public async Task ProcessAsync_NoTitleThrowsInvalidOperationException() { // Arrange var context = new TagHelperContext( tagName: "govuk-panel", allAttributes: new TagHelperAttributeList(), items: new Dictionary <object, object>(), uniqueId: "test"); var output = new TagHelperOutput( "govuk-panel", attributes: new TagHelperAttributeList(), getChildContentAsync: (useCachedResult, encoder) => { var panelContext = (PanelContext)context.Items[typeof(PanelContext)]; var tagHelperContent = new DefaultTagHelperContent(); tagHelperContent.SetHtmlContent("Body"); return(Task.FromResult <TagHelperContent>(tagHelperContent)); }); var tagHelper = new PanelTagHelper(new DefaultGovUkHtmlGenerator()); // Act & Assert var ex = await Assert.ThrowsAsync <InvalidOperationException>(() => tagHelper.ProcessAsync(context, output)); Assert.Equal("Missing <govuk-panel-title> element.", ex.Message); }
public async Task ProcessAsync_GeneratesExpectedOutput() { // Arrange var context = new TagHelperContext( tagName: "govuk-panel", allAttributes: new TagHelperAttributeList(), items: new Dictionary <object, object>(), uniqueId: "test"); var output = new TagHelperOutput( "govuk-panel", attributes: new TagHelperAttributeList(), getChildContentAsync: (useCachedResult, encoder) => { var panelContext = (PanelContext)context.Items[typeof(PanelContext)]; panelContext.TrySetHeading(3, new HtmlString("Title")); var tagHelperContent = new DefaultTagHelperContent(); tagHelperContent.SetHtmlContent("Body"); return(Task.FromResult <TagHelperContent>(tagHelperContent)); }); var tagHelper = new PanelTagHelper(new DefaultGovUkHtmlGenerator()); // Act await tagHelper.ProcessAsync(context, output); // Assert Assert.Equal( "<div class=\"govuk-panel--confirmation govuk-panel\"><h3 class=\"govuk-panel__title\">Title</h3><div class=\"govuk-panel__body\">Body</div></div>", output.AsString()); }
public async Task ProcessAsync_InvalidheadingLevelThrowsInvalidOperationException(int level) { // Arrange var context = new TagHelperContext( tagName: "govuk-panel", allAttributes: new TagHelperAttributeList(), items: new Dictionary <object, object>(), uniqueId: "test"); var output = new TagHelperOutput( "govuk-panel", attributes: new TagHelperAttributeList(), getChildContentAsync: (useCachedResult, encoder) => { var panelContext = (PanelContext)context.Items[typeof(PanelContext)]; panelContext.TrySetTitle(new HtmlString("Title")); var tagHelperContent = new DefaultTagHelperContent(); tagHelperContent.SetHtmlContent("Body"); return(Task.FromResult <TagHelperContent>(tagHelperContent)); }); var tagHelper = new PanelTagHelper(new DefaultGovUkHtmlGenerator()) { HeadingLevel = level }; // Act & Assert var ex = await Assert.ThrowsAsync <InvalidOperationException>(() => tagHelper.ProcessAsync(context, output)); Assert.Equal("The 'heading-level' attribute must be between 1 and 6.", ex.Message); }
public async Task ProcessAsync_MissingTitle_ThrowsInvalidOperationException() { // Arrange var context = new TagHelperContext( tagName: "govuk-panel", allAttributes: new TagHelperAttributeList(), items: new Dictionary <object, object>(), uniqueId: "test"); var output = new TagHelperOutput( "govuk-panel", attributes: new TagHelperAttributeList(), getChildContentAsync: (useCachedResult, encoder) => { var panelContext = (PanelContext)context.Items[typeof(PanelContext)]; panelContext.SetBody(new HtmlString("Body")); var tagHelperContent = new DefaultTagHelperContent(); return(Task.FromResult <TagHelperContent>(tagHelperContent)); }); var tagHelper = new PanelTagHelper(new ComponentGenerator()) { HeadingLevel = 3 }; // Act var ex = await Record.ExceptionAsync(() => tagHelper.ProcessAsync(context, output)); // Assert Assert.IsType <InvalidOperationException>(ex); Assert.Equal("A <govuk-panel-title> element must be provided.", ex.Message); }
public async Task ProcessAsync_GeneratesExpectedOutput() { // Arrange var context = new TagHelperContext( tagName: "govuk-panel", allAttributes: new TagHelperAttributeList(), items: new Dictionary <object, object>(), uniqueId: "test"); var output = new TagHelperOutput( "govuk-panel", attributes: new TagHelperAttributeList(), getChildContentAsync: (useCachedResult, encoder) => { var panelContext = (PanelContext)context.Items[typeof(PanelContext)]; panelContext.SetTitle(new HtmlString("Title")); panelContext.SetBody(new HtmlString("Body")); var tagHelperContent = new DefaultTagHelperContent(); return(Task.FromResult <TagHelperContent>(tagHelperContent)); }); var tagHelper = new PanelTagHelper(new ComponentGenerator()) { HeadingLevel = 3 }; // Act await tagHelper.ProcessAsync(context, output); // Assert var expectedHtml = @" <div class=""govuk-panel--confirmation govuk-panel""> <h3 class=""govuk-panel__title"">Title</h3> <div class=""govuk-panel__body"">Body</div> </div>"; AssertEx.HtmlEqual(expectedHtml, output.RenderToString()); }
/// <summary> /// 测试初始化 /// </summary> public PanelTagHelperTest(ITestOutputHelper output) { _output = output; _component = new PanelTagHelper(); }