51 lines
1.4 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|