public async Task ProcessAsync_MissingIconFallbackTextThrowsInvalidOperationException() { // Arrange var context = new TagHelperContext( tagName: "govuk-phase-banner", allAttributes: new TagHelperAttributeList(), items: new Dictionary <object, object>(), uniqueId: "test"); var output = new TagHelperOutput( "govuk-phase-banner", attributes: new TagHelperAttributeList(), getChildContentAsync: (useCachedResult, encoder) => { var tagHelperContent = new DefaultTagHelperContent(); tagHelperContent.SetContent("Phase message"); return(Task.FromResult <TagHelperContent>(tagHelperContent)); }); var tagHelper = new PhaseBannerTagHelper(new DefaultGovUkHtmlGenerator()); // Act & Assert var ex = await Assert.ThrowsAsync <InvalidOperationException>(() => tagHelper.ProcessAsync(context, output)); Assert.Equal("You must specify a <govuk-phase-banner-tag> child element.", ex.Message); }
public async Task ProcessAsync_MissingIconFallbackText_ThrowsInvalidOperationException() { // Arrange var context = new TagHelperContext( tagName: "govuk-phase-banner", allAttributes: new TagHelperAttributeList(), items: new Dictionary <object, object>(), uniqueId: "test"); var output = new TagHelperOutput( "govuk-phase-banner", attributes: new TagHelperAttributeList(), getChildContentAsync: (useCachedResult, encoder) => { var tagHelperContent = new DefaultTagHelperContent(); tagHelperContent.SetContent("Phase message"); return(Task.FromResult <TagHelperContent>(tagHelperContent)); }); var tagHelper = new PhaseBannerTagHelper(new ComponentGenerator()); // Act var ex = await Record.ExceptionAsync(() => tagHelper.ProcessAsync(context, output)); // Assert Assert.IsType <InvalidOperationException>(ex); Assert.Equal("A <govuk-phase-banner-tag> element must be provided.", ex.Message); }
public async Task ProcessAsync_GeneratesExpectedOutput() { // Arrange var context = new TagHelperContext( tagName: "govuk-phase-banner", allAttributes: new TagHelperAttributeList(), items: new Dictionary <object, object>(), uniqueId: "test"); var output = new TagHelperOutput( "govuk-phase-banner", attributes: new TagHelperAttributeList(), getChildContentAsync: (useCachedResult, encoder) => { var pbContext = (PhaseBannerContext)context.Items[typeof(PhaseBannerContext)]; pbContext.TrySetTag(attributes: null, content: new HtmlString("Alpha")); var tagHelperContent = new DefaultTagHelperContent(); tagHelperContent.SetContent("Phase message"); return(Task.FromResult <TagHelperContent>(tagHelperContent)); }); var tagHelper = new PhaseBannerTagHelper(new DefaultGovUkHtmlGenerator()); // Act await tagHelper.ProcessAsync(context, output); // Assert var html = output.AsString(); Assert.Equal( "<div class=\"govuk-phase-banner\">" + "<p class=\"govuk-phase-banner__content\">" + "<strong class=\"govuk-phase-banner__content__tag govuk-tag\">Alpha</strong>" + "<span class=\"govuk-phase-banner__text\">Phase message</span>" + "</p>" + "</div>", html); }
public async Task ProcessAsync_GeneratesExpectedOutput() { // Arrange var context = new TagHelperContext( tagName: "govuk-phase-banner", allAttributes: new TagHelperAttributeList(), items: new Dictionary <object, object>(), uniqueId: "test"); var output = new TagHelperOutput( "govuk-phase-banner", attributes: new TagHelperAttributeList(), getChildContentAsync: (useCachedResult, encoder) => { var pbContext = context.GetContextItem <PhaseBannerContext>(); pbContext.SetTag(new AttributeDictionary(), content: new HtmlString("Alpha")); var tagHelperContent = new DefaultTagHelperContent(); tagHelperContent.SetContent("Phase message"); return(Task.FromResult <TagHelperContent>(tagHelperContent)); }); var tagHelper = new PhaseBannerTagHelper(); // Act await tagHelper.ProcessAsync(context, output); // Assert var expectedHtml = @" <div class=""govuk-phase-banner""> <p class=""govuk-phase-banner__content""> <strong class=""govuk-phase-banner__content__tag govuk-tag"">Alpha</strong> <span class=""govuk-phase-banner__text"">Phase message</span> </p> </div>"; AssertEx.HtmlEqual(expectedHtml, output.RenderToString()); }