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);
        }
示例#2
0
        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);
        }
示例#4
0
        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());
        }