Remove RazorIRBuilder.Document
This commit is contained in:
parent
2ec2b98f83
commit
fd3a34b000
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue