aspnetcore/test/Microsoft.AspNetCore.Razor..../DirectiveDescriptorBuilderT...

103 lines
3.0 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.Language
{
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 AddX_MaintainsMultipleTokens()
{
// Arrange
var builder = DirectiveDescriptorBuilder.Create("custom");
// Act
var descriptor = builder
.AddType()
.AddMember()
.AddString()
.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));
}
}
}