public void WriteUsingDirective_WithSource_WritesContentWithLinePragmaAndMapping() { // Arrange var writer = new DesignTimeNodeWriter(); var sourceDocument = TestRazorSourceDocument.Create("@using System;"); var context = TestCodeRenderingContext.CreateDesignTime(); var originalSpan = new SourceSpan("test.cshtml", 0, 0, 0, 6); var generatedSpan = new SourceSpan(null, 21 + Environment.NewLine.Length, 1, 0, 6); var expectedSourceMapping = new SourceMapping(originalSpan, generatedSpan); var node = new UsingDirectiveIntermediateNode() { Content = "System", Source = originalSpan, }; // Act writer.WriteUsingDirective(context, node); // Assert var mapping = Assert.Single(((DefaultCodeRenderingContext)context).SourceMappings); Assert.Equal(expectedSourceMapping, mapping); var csharp = context.CodeWriter.GenerateCode(); Assert.Equal( @"#line 1 ""test.cshtml"" using System; #line default #line hidden ", csharp, ignoreLineEndingDifferences: true); }
public void WriteUsingDirective_NoSource_WritesContent() { // Arrange var writer = new DesignTimeNodeWriter(); var context = TestCodeRenderingContext.CreateDesignTime(); var node = new UsingDirectiveIntermediateNode() { Content = "System", }; // Act writer.WriteUsingDirective(context, node); // Assert var csharp = context.CodeWriter.GenerateCode(); Assert.Equal( @"using System; ", csharp, ignoreLineEndingDifferences: true); }