Remove RazorIRBuilder.Document

This commit is contained in:
Ryan Nowak 2017-05-12 18:12:30 -07:00
parent 2ec2b98f83
commit fd3a34b000
7 changed files with 79 additions and 117 deletions

View File

@ -19,9 +19,9 @@ namespace Microsoft.AspNetCore.Razor.Language
// This might not have been set if there are no tag helpers. // This might not have been set if there are no tag helpers.
var tagHelperContext = codeDocument.GetTagHelperContext(); var tagHelperContext = codeDocument.GetTagHelperContext();
var builder = RazorIRBuilder.Document(); var document = new DocumentIRNode();
var document = (DocumentIRNode)builder.Current; var builder = RazorIRBuilder.Create(document);
document.Options = syntaxTree.Options; document.Options = syntaxTree.Options;

View File

@ -7,11 +7,6 @@ namespace Microsoft.AspNetCore.Razor.Language.Intermediate
{ {
public abstract class RazorIRBuilder public abstract class RazorIRBuilder
{ {
public static RazorIRBuilder Document()
{
return Create(new DocumentIRNode());
}
public static RazorIRBuilder Create(RazorIRNode root) public static RazorIRBuilder Create(RazorIRNode root)
{ {
if (root == null) if (root == null)

View File

@ -14,7 +14,9 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
public void InstrumentationPass_InstrumentsHtml() public void InstrumentationPass_InstrumentsHtml()
{ {
// Arrange // Arrange
var builder = RazorIRBuilder.Document(); var document = new DocumentIRNode();
var builder = RazorIRBuilder.Create(document);
builder.Push(new HtmlContentIRNode() builder.Push(new HtmlContentIRNode()
{ {
Source = CreateSource(1), Source = CreateSource(1),
@ -26,20 +28,18 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
Source = CreateSource(1) Source = CreateSource(1)
}); });
builder.Pop(); builder.Pop();
var irDocument = (DocumentIRNode)builder.Build();
var pass = new InstrumentationPass() var pass = new InstrumentationPass()
{ {
Engine = RazorEngine.CreateEmpty(b => { }), Engine = RazorEngine.CreateEmpty(b => { }),
}; };
// Act // Act
pass.Execute(TestRazorCodeDocument.CreateEmpty(), irDocument); pass.Execute(TestRazorCodeDocument.CreateEmpty(), document);
// Assert // Assert
Children( Children(
irDocument, document,
n => BeginInstrumentation("1, 1, true", n), n => BeginInstrumentation("1, 1, true", n),
n => RazorIRAssert.Html("Hi", n), n => RazorIRAssert.Html("Hi", n),
n => EndInstrumentation(n)); n => EndInstrumentation(n));
@ -49,7 +49,8 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
public void InstrumentationPass_SkipsHtml_WithoutLocation() public void InstrumentationPass_SkipsHtml_WithoutLocation()
{ {
// Arrange // Arrange
var builder = RazorIRBuilder.Document(); var document = new DocumentIRNode();
var builder = RazorIRBuilder.Create(document);
builder.Push(new HtmlContentIRNode()); builder.Push(new HtmlContentIRNode());
builder.Add(new RazorIRToken() builder.Add(new RazorIRToken()
{ {
@ -58,19 +59,17 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
}); });
builder.Pop(); builder.Pop();
var irDocument = (DocumentIRNode)builder.Build();
var pass = new InstrumentationPass() var pass = new InstrumentationPass()
{ {
Engine = RazorEngine.CreateEmpty(b => { }), Engine = RazorEngine.CreateEmpty(b => { }),
}; };
// Act // Act
pass.Execute(TestRazorCodeDocument.CreateEmpty(), irDocument); pass.Execute(TestRazorCodeDocument.CreateEmpty(), document);
// Assert // Assert
Children( Children(
irDocument, document,
n => RazorIRAssert.Html("Hi", n)); n => RazorIRAssert.Html("Hi", n));
} }
@ -78,7 +77,8 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
public void InstrumentationPass_InstrumentsCSharpExpression() public void InstrumentationPass_InstrumentsCSharpExpression()
{ {
// Arrange // Arrange
var builder = RazorIRBuilder.Document(); var document = new DocumentIRNode();
var builder = RazorIRBuilder.Create(document);
builder.Push(new CSharpExpressionIRNode() builder.Push(new CSharpExpressionIRNode()
{ {
Source = CreateSource(2), Source = CreateSource(2),
@ -89,19 +89,17 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
Kind = RazorIRToken.TokenKind.CSharp, Kind = RazorIRToken.TokenKind.CSharp,
}); });
var irDocument = (DocumentIRNode)builder.Build();
var pass = new InstrumentationPass() var pass = new InstrumentationPass()
{ {
Engine = RazorEngine.CreateEmpty(b => { }), Engine = RazorEngine.CreateEmpty(b => { }),
}; };
// Act // Act
pass.Execute(TestRazorCodeDocument.CreateEmpty(), irDocument); pass.Execute(TestRazorCodeDocument.CreateEmpty(), document);
// Assert // Assert
Children( Children(
irDocument, document,
n => BeginInstrumentation("2, 2, false", n), n => BeginInstrumentation("2, 2, false", n),
n => CSharpExpression("Hi", n), n => CSharpExpression("Hi", n),
n => EndInstrumentation(n)); n => EndInstrumentation(n));
@ -111,7 +109,8 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
public void InstrumentationPass_SkipsCSharpExpression_WithoutLocation() public void InstrumentationPass_SkipsCSharpExpression_WithoutLocation()
{ {
// Arrange // Arrange
var builder = RazorIRBuilder.Document(); var document = new DocumentIRNode();
var builder = RazorIRBuilder.Create(document);
builder.Push(new CSharpExpressionIRNode()); builder.Push(new CSharpExpressionIRNode());
builder.Add(new RazorIRToken() builder.Add(new RazorIRToken()
{ {
@ -119,19 +118,17 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
Kind = RazorIRToken.TokenKind.CSharp, Kind = RazorIRToken.TokenKind.CSharp,
}); });
var irDocument = (DocumentIRNode)builder.Build();
var pass = new InstrumentationPass() var pass = new InstrumentationPass()
{ {
Engine = RazorEngine.CreateEmpty(b => { }), Engine = RazorEngine.CreateEmpty(b => { }),
}; };
// Act // Act
pass.Execute(TestRazorCodeDocument.CreateEmpty(), irDocument); pass.Execute(TestRazorCodeDocument.CreateEmpty(), document);
// Assert // Assert
Children( Children(
irDocument, document,
n => CSharpExpression("Hi", n)); n => CSharpExpression("Hi", n));
} }
@ -139,7 +136,8 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
public void InstrumentationPass_SkipsCSharpExpression_InsideTagHelperAttribute() public void InstrumentationPass_SkipsCSharpExpression_InsideTagHelperAttribute()
{ {
// Arrange // Arrange
var builder = RazorIRBuilder.Document(); var document = new DocumentIRNode();
var builder = RazorIRBuilder.Create(document);
builder.Push(new TagHelperIRNode() builder.Push(new TagHelperIRNode()
{ {
Source = CreateSource(3) Source = CreateSource(3)
@ -158,19 +156,17 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
Kind = RazorIRToken.TokenKind.CSharp, Kind = RazorIRToken.TokenKind.CSharp,
}); });
var irDocument = (DocumentIRNode)builder.Build();
var pass = new InstrumentationPass() var pass = new InstrumentationPass()
{ {
Engine = RazorEngine.CreateEmpty(b => { }), Engine = RazorEngine.CreateEmpty(b => { }),
}; };
// Act // Act
pass.Execute(TestRazorCodeDocument.CreateEmpty(), irDocument); pass.Execute(TestRazorCodeDocument.CreateEmpty(), document);
// Assert // Assert
Children( Children(
irDocument, document,
n => n =>
{ {
Assert.IsType<TagHelperIRNode>(n); Assert.IsType<TagHelperIRNode>(n);
@ -190,7 +186,8 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
public void InstrumentationPass_SkipsCSharpExpression_InsideTagHelperProperty() public void InstrumentationPass_SkipsCSharpExpression_InsideTagHelperProperty()
{ {
// Arrange // Arrange
var builder = RazorIRBuilder.Document(); var document = new DocumentIRNode();
var builder = RazorIRBuilder.Create(document);
builder.Push(new TagHelperIRNode() builder.Push(new TagHelperIRNode()
{ {
Source = CreateSource(3) Source = CreateSource(3)
@ -209,19 +206,17 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
Kind = RazorIRToken.TokenKind.CSharp, Kind = RazorIRToken.TokenKind.CSharp,
}); });
var irDocument = (DocumentIRNode)builder.Build();
var pass = new InstrumentationPass() var pass = new InstrumentationPass()
{ {
Engine = RazorEngine.CreateEmpty(b => { }), Engine = RazorEngine.CreateEmpty(b => { }),
}; };
// Act // Act
pass.Execute(TestRazorCodeDocument.CreateEmpty(), irDocument); pass.Execute(TestRazorCodeDocument.CreateEmpty(), document);
// Assert // Assert
Children( Children(
irDocument, document,
n => n =>
{ {
Assert.IsType<TagHelperIRNode>(n); Assert.IsType<TagHelperIRNode>(n);
@ -241,7 +236,8 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
public void InstrumentationPass_InstrumentsExecuteTagHelper_InsideTagHelper() public void InstrumentationPass_InstrumentsExecuteTagHelper_InsideTagHelper()
{ {
// Arrange // Arrange
var builder = RazorIRBuilder.Document(); var document = new DocumentIRNode();
var builder = RazorIRBuilder.Create(document);
builder.Push(new TagHelperIRNode() builder.Push(new TagHelperIRNode()
{ {
Source = CreateSource(3), Source = CreateSource(3),
@ -249,19 +245,17 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
builder.Add(new ExecuteTagHelpersIRNode()); builder.Add(new ExecuteTagHelpersIRNode());
var irDocument = (DocumentIRNode)builder.Build();
var pass = new InstrumentationPass() var pass = new InstrumentationPass()
{ {
Engine = RazorEngine.CreateEmpty(b => { }), Engine = RazorEngine.CreateEmpty(b => { }),
}; };
// Act // Act
pass.Execute(TestRazorCodeDocument.CreateEmpty(), irDocument); pass.Execute(TestRazorCodeDocument.CreateEmpty(), document);
// Assert // Assert
Children( Children(
irDocument, document,
n => n =>
{ {
Assert.IsType<TagHelperIRNode>(n); Assert.IsType<TagHelperIRNode>(n);
@ -277,24 +271,23 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
public void InstrumentationPass_SkipsExecuteTagHelper_WithoutLocation() public void InstrumentationPass_SkipsExecuteTagHelper_WithoutLocation()
{ {
// Arrange // Arrange
var builder = RazorIRBuilder.Document(); var document = new DocumentIRNode();
var builder = RazorIRBuilder.Create(document);
builder.Push(new TagHelperIRNode()); builder.Push(new TagHelperIRNode());
builder.Add(new ExecuteTagHelpersIRNode()); builder.Add(new ExecuteTagHelpersIRNode());
var irDocument = (DocumentIRNode)builder.Build();
var pass = new InstrumentationPass() var pass = new InstrumentationPass()
{ {
Engine = RazorEngine.CreateEmpty(b => { }), Engine = RazorEngine.CreateEmpty(b => { }),
}; };
// Act // Act
pass.Execute(TestRazorCodeDocument.CreateEmpty(), irDocument); pass.Execute(TestRazorCodeDocument.CreateEmpty(), document);
// Assert // Assert
Children( Children(
irDocument, document,
n => n =>
{ {
Assert.IsType<TagHelperIRNode>(n); Assert.IsType<TagHelperIRNode>(n);
@ -308,7 +301,8 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
public void InstrumentationPass_SkipsExecuteTagHelper_MalformedTagHelper() public void InstrumentationPass_SkipsExecuteTagHelper_MalformedTagHelper()
{ {
// Arrange // Arrange
var builder = RazorIRBuilder.Document(); var document = new DocumentIRNode();
var builder = RazorIRBuilder.Create(document);
builder.Push(new TagHelperIRNode() builder.Push(new TagHelperIRNode()
{ {
Source = CreateSource(3), Source = CreateSource(3),
@ -316,19 +310,17 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
builder.Push(new CSharpExpressionIRNode()); builder.Push(new CSharpExpressionIRNode());
builder.Add(new ExecuteTagHelpersIRNode()); // Malformed builder.Add(new ExecuteTagHelpersIRNode()); // Malformed
var irDocument = (DocumentIRNode)builder.Build();
var pass = new InstrumentationPass() var pass = new InstrumentationPass()
{ {
Engine = RazorEngine.CreateEmpty(b => { }), Engine = RazorEngine.CreateEmpty(b => { }),
}; };
// Act // Act
pass.Execute(TestRazorCodeDocument.CreateEmpty(), irDocument); pass.Execute(TestRazorCodeDocument.CreateEmpty(), document);
// Assert // Assert
Children( Children(
irDocument, document,
n => n =>
{ {
Assert.IsType<TagHelperIRNode>(n); Assert.IsType<TagHelperIRNode>(n);

View File

@ -117,7 +117,8 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
public void Pass_SetsNamespaceAndClassName_ComputedFromImports() public void Pass_SetsNamespaceAndClassName_ComputedFromImports()
{ {
// Arrange // Arrange
var builder = RazorIRBuilder.Document(); var document = new DocumentIRNode();
var builder = RazorIRBuilder.Create(document);
builder.Push(new DirectiveIRNode() builder.Push(new DirectiveIRNode()
{ {
@ -132,9 +133,8 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
var @class = new ClassDeclarationIRNode() { Name = "default" }; var @class = new ClassDeclarationIRNode() { Name = "default" };
builder.Add(@class); builder.Add(@class);
var irDocument = (DocumentIRNode)builder.Build(); document.DocumentKind = RazorPageDocumentClassifierPass.RazorPageDocumentKind;
irDocument.DocumentKind = RazorPageDocumentClassifierPass.RazorPageDocumentKind;
var codeDocument = RazorCodeDocument.Create(RazorSourceDocument.Create("ignored", "/Account/Manage/AddUser.cshtml")); var codeDocument = RazorCodeDocument.Create(RazorSourceDocument.Create("ignored", "/Account/Manage/AddUser.cshtml"));
@ -142,7 +142,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
pass.Engine = RazorEngine.CreateEmpty(b => { }); pass.Engine = RazorEngine.CreateEmpty(b => { });
// Act // Act
pass.Execute(codeDocument, irDocument); pass.Execute(codeDocument, document);
// Assert // Assert
Assert.Equal("WebApplication.Account.Manage", @namespace.Content); Assert.Equal("WebApplication.Account.Manage", @namespace.Content);
@ -154,7 +154,8 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
public void Pass_SetsNamespaceAndClassName_ComputedFromSource() public void Pass_SetsNamespaceAndClassName_ComputedFromSource()
{ {
// Arrange // Arrange
var builder = RazorIRBuilder.Document(); var document = new DocumentIRNode();
var builder = RazorIRBuilder.Create(document);
// This will be ignored. // This will be ignored.
builder.Push(new DirectiveIRNode() builder.Push(new DirectiveIRNode()
@ -179,9 +180,8 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
var @class = new ClassDeclarationIRNode() { Name = "default" }; var @class = new ClassDeclarationIRNode() { Name = "default" };
builder.Add(@class); builder.Add(@class);
var irDocument = (DocumentIRNode)builder.Build(); document.DocumentKind = RazorPageDocumentClassifierPass.RazorPageDocumentKind;
irDocument.DocumentKind = RazorPageDocumentClassifierPass.RazorPageDocumentKind;
var codeDocument = RazorCodeDocument.Create(RazorSourceDocument.Create("ignored", "/Account/Manage/AddUser.cshtml")); var codeDocument = RazorCodeDocument.Create(RazorSourceDocument.Create("ignored", "/Account/Manage/AddUser.cshtml"));
@ -189,7 +189,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
pass.Engine = RazorEngine.CreateEmpty(b => { }); pass.Engine = RazorEngine.CreateEmpty(b => { });
// Act // Act
pass.Execute(codeDocument, irDocument); pass.Execute(codeDocument, document);
// Assert // Assert
Assert.Equal("WebApplication.Account.Manage", @namespace.Content); Assert.Equal("WebApplication.Account.Manage", @namespace.Content);
@ -201,7 +201,8 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
public void Pass_SetsNamespaceAndClassName_ComputedFromSource_ForView() public void Pass_SetsNamespaceAndClassName_ComputedFromSource_ForView()
{ {
// Arrange // Arrange
var builder = RazorIRBuilder.Document(); var document = new DocumentIRNode();
var builder = RazorIRBuilder.Create(document);
// This will be ignored. // This will be ignored.
builder.Push(new DirectiveIRNode() builder.Push(new DirectiveIRNode()
@ -226,9 +227,8 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
var @class = new ClassDeclarationIRNode() { Name = "default" }; var @class = new ClassDeclarationIRNode() { Name = "default" };
builder.Add(@class); builder.Add(@class);
var irDocument = (DocumentIRNode)builder.Build(); document.DocumentKind = MvcViewDocumentClassifierPass.MvcViewDocumentKind;
irDocument.DocumentKind = MvcViewDocumentClassifierPass.MvcViewDocumentKind;
var codeDocument = RazorCodeDocument.Create(RazorSourceDocument.Create("ignored", "/Account/Manage/AddUser.cshtml")); var codeDocument = RazorCodeDocument.Create(RazorSourceDocument.Create("ignored", "/Account/Manage/AddUser.cshtml"));
@ -236,7 +236,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
pass.Engine = RazorEngine.CreateEmpty(b => { }); pass.Engine = RazorEngine.CreateEmpty(b => { });
// Act // Act
pass.Execute(codeDocument, irDocument); pass.Execute(codeDocument, document);
// Assert // Assert
Assert.Equal("WebApplication.Account.Manage", @namespace.Content); Assert.Equal("WebApplication.Account.Manage", @namespace.Content);
@ -249,7 +249,8 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
public void Pass_SetsNamespaceButNotClassName_VerbatimFromImports() public void Pass_SetsNamespaceButNotClassName_VerbatimFromImports()
{ {
// Arrange // Arrange
var builder = RazorIRBuilder.Document(); var document = new DocumentIRNode();
var builder = RazorIRBuilder.Create(document);
builder.Push(new DirectiveIRNode() builder.Push(new DirectiveIRNode()
{ {
@ -264,9 +265,8 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
var @class = new ClassDeclarationIRNode() { Name = "default" }; var @class = new ClassDeclarationIRNode() { Name = "default" };
builder.Add(@class); builder.Add(@class);
var irDocument = (DocumentIRNode)builder.Build(); document.DocumentKind = RazorPageDocumentClassifierPass.RazorPageDocumentKind;
irDocument.DocumentKind = RazorPageDocumentClassifierPass.RazorPageDocumentKind;
var codeDocument = RazorCodeDocument.Create(RazorSourceDocument.Create("ignored", "/Account/Manage/AddUser.cshtml")); var codeDocument = RazorCodeDocument.Create(RazorSourceDocument.Create("ignored", "/Account/Manage/AddUser.cshtml"));
@ -274,7 +274,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
pass.Engine = RazorEngine.CreateEmpty(b => { }); pass.Engine = RazorEngine.CreateEmpty(b => { });
// Act // Act
pass.Execute(codeDocument, irDocument); pass.Execute(codeDocument, document);
// Assert // Assert
Assert.Equal("WebApplication.Account", @namespace.Content); Assert.Equal("WebApplication.Account", @namespace.Content);
@ -285,7 +285,8 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
public void Pass_DoesNothing_ForUnknownDocumentKind() public void Pass_DoesNothing_ForUnknownDocumentKind()
{ {
// Arrange // Arrange
var builder = RazorIRBuilder.Document(); var document = new DocumentIRNode();
var builder = RazorIRBuilder.Create(document);
builder.Push(new DirectiveIRNode() builder.Push(new DirectiveIRNode()
{ {
@ -300,9 +301,8 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
var @class = new ClassDeclarationIRNode() { Name = "default" }; var @class = new ClassDeclarationIRNode() { Name = "default" };
builder.Add(@class); builder.Add(@class);
var irDocument = (DocumentIRNode)builder.Build(); document.DocumentKind = null;
irDocument.DocumentKind = null;
var codeDocument = RazorCodeDocument.Create(RazorSourceDocument.Create("ignored", "/Account/Manage/AddUser.cshtml")); var codeDocument = RazorCodeDocument.Create(RazorSourceDocument.Create("ignored", "/Account/Manage/AddUser.cshtml"));
@ -310,7 +310,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
pass.Engine = RazorEngine.CreateEmpty(b => { }); pass.Engine = RazorEngine.CreateEmpty(b => { });
// Act // Act
pass.Execute(codeDocument, irDocument); pass.Execute(codeDocument, document);
// Assert // Assert
Assert.Equal("default", @namespace.Content); Assert.Equal("default", @namespace.Content);

View File

@ -25,14 +25,13 @@ namespace Microsoft.AspNetCore.Razor.Language.CodeGeneration
var writer = new DefaultDocumentWriter(target, context); var writer = new DefaultDocumentWriter(target, context);
var builder = RazorIRBuilder.Document(); var document = new DocumentIRNode();
var builder = RazorIRBuilder.Create(document);
builder.Add(new NamespaceDeclarationIRNode() builder.Add(new NamespaceDeclarationIRNode()
{ {
Content = "TestNamespace", Content = "TestNamespace",
}); });
var document = (DocumentIRNode)builder.Build();
// Act // Act
writer.WriteDocument(document); writer.WriteDocument(document);
@ -63,7 +62,8 @@ namespace Microsoft.AspNetCore.Razor.Language.CodeGeneration
}; };
var writer = new DefaultDocumentWriter(target, context); var writer = new DefaultDocumentWriter(target, context);
var builder = RazorIRBuilder.Document(); var document = new DocumentIRNode();
var builder = RazorIRBuilder.Create(document);
builder.Add(new ClassDeclarationIRNode() builder.Add(new ClassDeclarationIRNode()
{ {
AccessModifier = "internal", AccessModifier = "internal",
@ -72,8 +72,6 @@ namespace Microsoft.AspNetCore.Razor.Language.CodeGeneration
Name = "TestClass", Name = "TestClass",
}); });
var document = (DocumentIRNode)builder.Build();
// Act // Act
writer.WriteDocument(document); writer.WriteDocument(document);
@ -103,7 +101,8 @@ namespace Microsoft.AspNetCore.Razor.Language.CodeGeneration
}; };
var writer = new DefaultDocumentWriter(target, context); var writer = new DefaultDocumentWriter(target, context);
var builder = RazorIRBuilder.Document(); var document = new DocumentIRNode();
var builder = RazorIRBuilder.Create(document);
builder.Add(new MethodDeclarationIRNode() builder.Add(new MethodDeclarationIRNode()
{ {
AccessModifier = "internal", AccessModifier = "internal",
@ -112,8 +111,6 @@ namespace Microsoft.AspNetCore.Razor.Language.CodeGeneration
ReturnType = "string", ReturnType = "string",
}); });
var document = (DocumentIRNode)builder.Build();
// Act // Act
writer.WriteDocument(document); writer.WriteDocument(document);
@ -145,17 +142,16 @@ internal virtual async string TestMethod()
}; };
var writer = new DefaultDocumentWriter(target, context); var writer = new DefaultDocumentWriter(target, context);
var builder = RazorIRBuilder.Document(); var document = new DocumentIRNode();
var builder = RazorIRBuilder.Create(document);
builder.Add(new FieldDeclarationIRNode() builder.Add(new FieldDeclarationIRNode()
{ {
AccessModifier = "internal", AccessModifier = "internal",
Modifiers = new List<string> { "readonly",}, Modifiers = new List<string> { "readonly", },
Name = "_foo", Name = "_foo",
Type = "string", Type = "string",
}); });
var document = (DocumentIRNode)builder.Build();
// Act // Act
writer.WriteDocument(document); writer.WriteDocument(document);
@ -183,7 +179,8 @@ internal virtual async string TestMethod()
}; };
var writer = new DefaultDocumentWriter(target, context); var writer = new DefaultDocumentWriter(target, context);
var builder = RazorIRBuilder.Document(); var document = new DocumentIRNode();
var builder = RazorIRBuilder.Create(document);
builder.Add(new PropertyDeclarationIRNode() builder.Add(new PropertyDeclarationIRNode()
{ {
AccessModifier = "internal", AccessModifier = "internal",
@ -192,8 +189,6 @@ internal virtual async string TestMethod()
Type = "string", Type = "string",
}); });
var document = (DocumentIRNode)builder.Build();
// Act // Act
writer.WriteDocument(document); writer.WriteDocument(document);

View File

@ -1,20 +0,0 @@
// 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.Intermediate
{
public class RazorIRBuilderTest
{
[Fact]
public void Document_CreatesDocumentNode()
{
// Arrange & Act
var builder = RazorIRBuilder.Document();
// Assert
Assert.IsType<DocumentIRNode>(builder.Current);
}
}
}

View File

@ -62,7 +62,7 @@ namespace Microsoft.AspNetCore.Razor.Language
// Arrange // Arrange
var codeDocument = TestRazorCodeDocument.CreateEmpty(); var codeDocument = TestRazorCodeDocument.CreateEmpty();
var expected = RazorIRBuilder.Document().Build(); var expected = new DocumentIRNode();
codeDocument.Items[typeof(DocumentIRNode)] = expected; codeDocument.Items[typeof(DocumentIRNode)] = expected;
// Act // Act
@ -78,7 +78,7 @@ namespace Microsoft.AspNetCore.Razor.Language
// Arrange // Arrange
var codeDocument = TestRazorCodeDocument.CreateEmpty(); var codeDocument = TestRazorCodeDocument.CreateEmpty();
var expected = RazorIRBuilder.Document().Build(); var expected = new DocumentIRNode();
// Act // Act
codeDocument.SetIRDocument((DocumentIRNode)expected); codeDocument.SetIRDocument((DocumentIRNode)expected);