public async Task ProcessAsync_GeneratesExpectedOutput() { // Arrange var context = new TagHelperContext( tagName: "govuk-breadcrumbs", allAttributes: new TagHelperAttributeList(), items: new Dictionary <object, object>(), uniqueId: "test"); var output = new TagHelperOutput( "govuk-breadcrumbs", attributes: new TagHelperAttributeList(), getChildContentAsync: (useCachedResult, encoder) => { var bcContext = (BreadcrumbsContext)context.Items[typeof(BreadcrumbsContext)]; bcContext.AddItem(new BreadcrumbsItem() { Href = "first", Content = new HtmlString("First") }); bcContext.AddItem(new BreadcrumbsItem() { Href = "second", Content = new HtmlString("Second") }); bcContext.AddItem(new BreadcrumbsItem() { Content = new HtmlString("Last"), IsCurrentPage = true }); var tagHelperContent = new DefaultTagHelperContent(); return(Task.FromResult <TagHelperContent>(tagHelperContent)); }); var tagHelper = new BreadcrumbsTagHelper(new DefaultGovUkHtmlGenerator()); // Act await tagHelper.ProcessAsync(context, output); // Assert var html = output.AsString(); Assert.Equal( "<div class=\"govuk-breadcrumbs\">" + "<ol class=\"govuk-breadcrumbs__list\">" + "<li class=\"govuk-breadcrumbs__list-item\"><a class=\"govuk-breadcrumbs__link\" href=\"first\">First</a></li>" + "<li class=\"govuk-breadcrumbs__list-item\"><a class=\"govuk-breadcrumbs__link\" href=\"second\">Second</a></li>" + "<li aria-current=\"page\" class=\"govuk-breadcrumbs__list-item\">Last</li>" + "</ol>" + "</div>", html); }
public async Task ProcessAsync_GeneratesExpectedOutput() { // Arrange var context = new TagHelperContext( tagName: "govuk-breadcrumbs", allAttributes: new TagHelperAttributeList(), items: new Dictionary <object, object>(), uniqueId: "test"); var output = new TagHelperOutput( "govuk-breadcrumbs", attributes: new TagHelperAttributeList(), getChildContentAsync: (useCachedResult, encoder) => { var breadcrumbsContext = context.GetContextItem <BreadcrumbsContext>(); breadcrumbsContext.AddItem(new BreadcrumbsItem() { Href = "first", Content = new HtmlString("First") }); breadcrumbsContext.AddItem(new BreadcrumbsItem() { Href = "second", Content = new HtmlString("Second") }); breadcrumbsContext.AddItem(new BreadcrumbsItem() { Content = new HtmlString("Last") }); var tagHelperContent = new DefaultTagHelperContent(); return(Task.FromResult <TagHelperContent>(tagHelperContent)); }); var tagHelper = new BreadcrumbsTagHelper(); // Act await tagHelper.ProcessAsync(context, output); // Assert var expectedHtml = @" <div class=""govuk-breadcrumbs""> <ol class=""govuk-breadcrumbs__list""> <li class=""govuk-breadcrumbs__list-item""><a class=""govuk-breadcrumbs__link"" href=""first"">First</a></li> <li class=""govuk-breadcrumbs__list-item""><a class=""govuk-breadcrumbs__link"" href=""second"">Second</a></li> <li aria-current=""page"" class=""govuk-breadcrumbs__list-item"">Last</li> </ol> </div>"; AssertEx.HtmlEqual(@expectedHtml, output.RenderToString()); }