aspnetcore/test/Microsoft.AspNetCore.Razor..../CodeGeneration/LiteralRuntimeBasicWriterTe...

51 lines
1.4 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 Microsoft.AspNetCore.Razor.Language.Intermediate;
using Xunit;
namespace Microsoft.AspNetCore.Razor.Language.CodeGeneration
{
public class LiteralRuntimeBasicWriterTest
{
[Fact]
public void WriteCSharpExpression_UsesWriteLiteral_WritesLinePragma_WithSource()
{
// Arrange
var writer = new LiteralRuntimeBasicWriter();
var context = new CSharpRenderingContext()
{
Options = RazorCodeGenerationOptions.CreateDefault(),
Writer = new Legacy.CSharpCodeWriter(),
};
var node = new CSharpExpressionIRNode()
{
Source = new SourceSpan("test.cshtml", 0, 0, 0, 3),
};
var builder = RazorIRBuilder.Create(node);
builder.Add(new RazorIRToken()
{
Content = "i++",
Kind = RazorIRToken.TokenKind.CSharp,
});
// Act
writer.WriteCSharpExpression(context, node);
// Assert
var csharp = context.Writer.Builder.ToString();
Assert.Equal(
@"#line 1 ""test.cshtml""
WriteLiteral(i++);
#line default
#line hidden
",
csharp,
ignoreLineEndingDifferences: true);
}
}
}