public async Task ProcessAsync_WhenNoNonceDoesNotAdd()
        {
            // Arrange
            var    id               = Guid.NewGuid().ToString();
            var    tagName          = "script";
            var    tagHelperContext = GetTagHelperContext(id, tagName);
            string nonceValue       = null;
            var    nonceTagHelper   = new NonceTagHelper()
            {
                AddNonce    = true,
                ViewContext = GetViewContext(nonceValue),
            };

            var output = new TagHelperOutput(
                tagName,
                attributes: new TagHelperAttributeList(),
                getChildContentAsync: (useCachedResult, encoder) =>
            {
                var tagHelperContent = new DefaultTagHelperContent();
                tagHelperContent.SetContent("Something");
                return(Task.FromResult <TagHelperContent>(tagHelperContent));
            });

            output.Content.SetContent("Something Else");

            // Act
            await nonceTagHelper.ProcessAsync(tagHelperContext, output);

            // Assert
            Assert.Equal(tagName, output.TagName);
            Assert.Empty(output.Attributes);
            Assert.Equal("Something Else", output.Content.GetContent());
        }
        public async Task ProcessAsync_GeneratesExpectedOutput()
        {
            // Arrange
            var id               = Guid.NewGuid().ToString();
            var tagName          = "script";
            var tagHelperContext = GetTagHelperContext(id, tagName);
            var nonceValue       = "FHDK1293843673GFNGB2";
            var nonceTagHelper   = new NonceTagHelper()
            {
                AddNonce    = true,
                ViewContext = GetViewContext(nonceValue),
            };

            var output = new TagHelperOutput(
                tagName,
                attributes: new TagHelperAttributeList(),
                getChildContentAsync: (useCachedResult, encoder) =>
            {
                var tagHelperContent = new DefaultTagHelperContent();
                tagHelperContent.SetContent("Something");
                return(Task.FromResult <TagHelperContent>(tagHelperContent));
            });

            output.Content.SetContent("Something Else");

            // Act
            await nonceTagHelper.ProcessAsync(tagHelperContext, output);

            // Assert
            Assert.Equal(tagName, output.TagName);
            Assert.Single(output.Attributes);
            var attribute = Assert.Single(output.Attributes, attr => attr.Name.Equals("nonce"));

            Assert.Equal(nonceValue, attribute.Value);
            Assert.Equal("Something Else", output.Content.GetContent());
        }