File: TagHelperDescriptorExtensionsTest.cs
Web Access
Project: src\src\Razor\src\Compiler\Microsoft.AspNetCore.Mvc.Razor.Extensions\test\Microsoft.AspNetCore.Mvc.Razor.Extensions.UnitTests.csproj (Microsoft.AspNetCore.Mvc.Razor.Extensions.UnitTests)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
#nullable disable
 
using Microsoft.AspNetCore.Razor.Language;
using Xunit;
 
namespace Microsoft.AspNetCore.Mvc.Razor.Extensions;
 
public class TagHelperDescriptorExtensionsTest
{
    [Fact]
    public void IsViewComponentKind_ReturnsFalse_ForNonVCTHDescriptor()
    {
        // Arrange
        var tagHelper = CreateTagHelperDescriptor();
 
        // Act
        var result = tagHelper.IsViewComponentKind;
 
        // Assert
        Assert.False(result);
    }
 
    [Fact]
    public void IsViewComponentKind_ReturnsTrue_ForVCTHDescriptor()
    {
        // Arrange
        var tagHelper = CreateViewComponentTagHelperDescriptor();
 
        // Act
        var result = tagHelper.IsViewComponentKind;
 
        // Assert
        Assert.True(result);
    }
 
    [Fact]
    public void ViewComponentName_ReturnsNull_ForNonVCTHDescriptor()
    {
        //Arrange
        var tagHelper = CreateTagHelperDescriptor();
 
        // Act
        var result = tagHelper.ViewComponentName;
 
        // Assert
        Assert.Null(result);
    }
 
    [Fact]
    public void ViewComponentName_ReturnsName_ForVCTHDescriptor()
    {
        // Arrange
        var tagHelper = CreateViewComponentTagHelperDescriptor("ViewComponentName");
 
        // Act
        var result = tagHelper.ViewComponentName;
 
        // Assert
        Assert.Equal("ViewComponentName", result);
    }
 
    private static TagHelperDescriptor CreateTagHelperDescriptor()
    {
        var tagHelper = TagHelperDescriptorBuilder.CreateTagHelper("TypeName", "AssemblyName")
            .TagMatchingRuleDescriptor(rule => rule.RequireTagName("tag-name"))
            .Build();
 
        return tagHelper;
    }
 
    private static TagHelperDescriptor CreateViewComponentTagHelperDescriptor(string name = "ViewComponentName")
    {
        var tagHelper = TagHelperDescriptorBuilder.CreateViewComponent("TypeName", "AssemblyName")
            .TagMatchingRuleDescriptor(rule => rule.RequireTagName("tag-name"))
            .Metadata(new ViewComponentMetadata(name, TypeNameObject.From(name)))
            .Build();
 
        return tagHelper;
    }
}