public void RenderMetaTags_NoValueForTwitterSiteUsername_ExceptionThrown()
        {
            var       expected        = typeof(System.ArgumentNullException);
            Exception thrownException = null;

            try
            {
                TwitterCardSummaryLargeImage myTagHelper = new TwitterCardSummaryLargeImage()
                {
                    Title        = TwitterCardAnswerKey.TitleValue,
                    Description  = TwitterCardAnswerKey.DescriptionValue,
                    SiteUsername = string.Empty,
                    Image        = null
                };

                var context = new TagHelperContext(
                    new TagHelperAttributeList(),
                    new Dictionary <object, object>(),
                    Guid.NewGuid().ToString("N"));

                var output = new TagHelperOutput(
                    "meta",
                    new TagHelperAttributeList(),
                    (cache, encoder) =>
                {
                    var tagHelperContent = new DefaultTagHelperContent();
                    tagHelperContent.SetContent(string.Empty);
                    return(Task.FromResult <TagHelperContent>(tagHelperContent));
                });

                myTagHelper.Process(context, output);
            }
            catch (Exception e)
            {
                thrownException = e;
            }

            Assert.Equal(expected, thrownException.GetType());
            Assert.Contains("Either twitter:site or twitter:site:id is required.", thrownException.Message.ToString());
        }
        public void RenderMetaTags_RenderedTagImageWithImageUrlHeightAndWidth_Rendered()
        {
            var tagHelper = new TwitterCardSummaryLargeImage()
            {
                Title        = TwitterCardAnswerKey.TitleValue,
                Description  = TwitterCardAnswerKey.DescriptionValue,
                SiteUsername = TwitterCardAnswerKey.SiteUsernameValue,
                Image        = new TwitterImage(TwitterCardAnswerKey.ImageUrlValue, TwitterCardAnswerKey.ImageWidthValue, TwitterCardAnswerKey.ImageHeightValue),
            };

            var context = new TagHelperContext(
                new TagHelperAttributeList(),
                new Dictionary <object, object>(),
                Guid.NewGuid().ToString("N", CultureInfo.InvariantCulture));

            var output = new TagHelperOutput(
                "meta",
                new TagHelperAttributeList(),
                (cache, encoder) =>
            {
                var tagHelperContent = new DefaultTagHelperContent();
                tagHelperContent.SetContent(string.Empty);
                return(Task.FromResult <TagHelperContent>(tagHelperContent));
            });

            tagHelper.Process(context, output);
            Assert.Contains(
                "name=\"twitter:image\" content=\"" + TwitterCardAnswerKey.ImageUrlValue + "\"",
                output.Content.GetContent(),
                StringComparison.Ordinal);
            Assert.Contains(
                "name=\"twitter:image:height\" content=\"" + TwitterCardAnswerKey.ImageHeightValue.ToString(CultureInfo.InvariantCulture) + "\"",
                output.Content.GetContent(),
                StringComparison.Ordinal);
            Assert.Contains(
                "name=\"twitter:image:width\" content=\"" + TwitterCardAnswerKey.ImageWidthValue.ToString(CultureInfo.InvariantCulture) + "\"",
                output.Content.GetContent(),
                StringComparison.Ordinal);
        }
        public void RenderMetaTags_RenderedOptionalTagCreatorTwitterIdCreatorUsername_Rendered()
        {
            var tagHelper = new TwitterCardSummaryLargeImage()
            {
                Title           = TwitterCardAnswerKey.TitleValue,
                Description     = TwitterCardAnswerKey.DescriptionValue,
                SiteUsername    = TwitterCardAnswerKey.SiteUsernameValue,
                CreatorUsername = TwitterCardAnswerKey.CreatorUsernameValue,
                CreatorId       = TwitterCardAnswerKey.CreatorId,
            };

            var context = new TagHelperContext(
                new TagHelperAttributeList(),
                new Dictionary <object, object>(),
                Guid.NewGuid().ToString("N", CultureInfo.InvariantCulture));

            var output = new TagHelperOutput(
                "meta",
                new TagHelperAttributeList(),
                (cache, encoder) =>
            {
                var tagHelperContent = new DefaultTagHelperContent();
                tagHelperContent.SetContent(string.Empty);
                return(Task.FromResult <TagHelperContent>(tagHelperContent));
            });

            tagHelper.Process(context, output);
            Assert.Contains(
                "name=\"twitter:creator:id\" content=\"" + TwitterCardAnswerKey.CreatorId + "\"",
                output.Content.GetContent(),
                StringComparison.Ordinal);
            Assert.Contains(
                "name=\"twitter:creator\" content=\"" + TwitterCardAnswerKey.CreatorUsernameValue + "\"",
                output.Content.GetContent(),
                StringComparison.Ordinal);
        }