124 lines
3.7 KiB
C#
124 lines
3.7 KiB
C#
// Copyright(c) .NET Foundation.All rights reserved.
|
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
|
|
using Xunit;
|
|
|
|
namespace Microsoft.AspNetCore.Razor.Evolution
|
|
{
|
|
public class DirectiveDescriptorBuilderTest
|
|
{
|
|
[Fact]
|
|
public void Create_BuildsSingleLineDirectiveDescriptor()
|
|
{
|
|
// Act
|
|
var descriptor = DirectiveDescriptorBuilder.Create("custom").Build();
|
|
|
|
// Assert
|
|
Assert.Equal(DirectiveDescriptorKind.SingleLine, descriptor.Kind);
|
|
}
|
|
|
|
[Fact]
|
|
public void CreateRazorBlock_BuildsRazorBlockDirectiveDescriptor()
|
|
{
|
|
// Act
|
|
var descriptor = DirectiveDescriptorBuilder.CreateRazorBlock("custom").Build();
|
|
|
|
// Assert
|
|
Assert.Equal(DirectiveDescriptorKind.RazorBlock, descriptor.Kind);
|
|
}
|
|
|
|
[Fact]
|
|
public void CreateCodeBlock_BuildsCodeBlockDirectiveDescriptor()
|
|
{
|
|
// Act
|
|
var descriptor = DirectiveDescriptorBuilder.CreateCodeBlock("custom").Build();
|
|
|
|
// Assert
|
|
Assert.Equal(DirectiveDescriptorKind.CodeBlock, descriptor.Kind);
|
|
}
|
|
|
|
[Fact]
|
|
public void AddType_AddsToken()
|
|
{
|
|
// Arrange
|
|
var builder = DirectiveDescriptorBuilder.Create("custom");
|
|
|
|
// Act
|
|
var descriptor = builder.AddType().Build();
|
|
|
|
// Assert
|
|
var token = Assert.Single(descriptor.Tokens);
|
|
Assert.Equal(DirectiveTokenKind.Type, token.Kind);
|
|
}
|
|
|
|
[Fact]
|
|
public void AddMember_AddsToken()
|
|
{
|
|
// Arrange
|
|
var builder = DirectiveDescriptorBuilder.Create("custom");
|
|
|
|
// Act
|
|
var descriptor = builder.AddMember().Build();
|
|
|
|
// Assert
|
|
var token = Assert.Single(descriptor.Tokens);
|
|
Assert.Equal(DirectiveTokenKind.Member, token.Kind);
|
|
}
|
|
|
|
[Fact]
|
|
public void AddString_AddsToken()
|
|
{
|
|
// Arrange
|
|
var builder = DirectiveDescriptorBuilder.Create("custom");
|
|
|
|
// Act
|
|
var descriptor = builder.AddString().Build();
|
|
|
|
// Assert
|
|
var token = Assert.Single(descriptor.Tokens);
|
|
Assert.Equal(DirectiveTokenKind.String, token.Kind);
|
|
}
|
|
|
|
[Fact]
|
|
public void AddLiteral_AddsToken()
|
|
{
|
|
// Arrange
|
|
var builder = DirectiveDescriptorBuilder.Create("custom");
|
|
|
|
// Act
|
|
var descriptor = builder.AddLiteral(",").Build();
|
|
|
|
// Assert
|
|
var token = Assert.Single(descriptor.Tokens);
|
|
Assert.Equal(DirectiveTokenKind.Literal, token.Kind);
|
|
Assert.Equal(",", token.Value);
|
|
}
|
|
|
|
[Fact]
|
|
public void AddX_MaintainsMultipleTokens()
|
|
{
|
|
// Arrange
|
|
var builder = DirectiveDescriptorBuilder.Create("custom");
|
|
|
|
// Act
|
|
var descriptor = builder
|
|
.AddType()
|
|
.AddMember()
|
|
.AddString()
|
|
.AddLiteral(",")
|
|
.Build();
|
|
|
|
// Assert
|
|
Assert.Collection(descriptor.Tokens,
|
|
token => Assert.Equal(DirectiveTokenKind.Type, token.Kind),
|
|
token => Assert.Equal(DirectiveTokenKind.Member, token.Kind),
|
|
token => Assert.Equal(DirectiveTokenKind.String, token.Kind),
|
|
token =>
|
|
{
|
|
Assert.Equal(DirectiveTokenKind.Literal, token.Kind);
|
|
Assert.Equal(",", token.Value);
|
|
});
|
|
}
|
|
}
|
|
}
|