// 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 System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using Microsoft.AspNetCore.Mvc.ViewFeatures; using Microsoft.AspNetCore.Razor.Evolution; using Microsoft.AspNetCore.Razor.Evolution.Intermediate; using Microsoft.AspNetCore.Razor.Evolution.Legacy; using Xunit; namespace Microsoft.AspNetCore.Mvc.Razor.Host { public class ModelExpressionPassTest { [Fact] public void ModelExpressionPass_NonModelExpressionProperty_Ignored() { // Arrange var codeDocument = CreateDocument(@" @addTagHelper TestTagHelper, TestAssembly
");
var tagHelpers = new[]
{
new TagHelperDescriptor()
{
AssemblyName = "TestAssembly",
TypeName = "TestTagHelper",
TagName = "p",
Attributes = new TagHelperAttributeDescriptor[]
{
new TagHelperAttributeDescriptor()
{
TypeName = "System.Int32",
Name = "Foo",
}
}
}
};
var engine = CreateEngine(tagHelpers);
var pass = new ModelExpressionPass()
{
Engine = engine,
};
var irDocument = CreateIRDocument(engine, codeDocument);
// Act
pass.Execute(codeDocument, irDocument);
// Assert
var tagHelper = FindTagHelperNode(irDocument);
var setProperty = tagHelper.Children.OfType ");
var tagHelpers = new[]
{
new TagHelperDescriptor()
{
AssemblyName = "TestAssembly",
TypeName = "TestTagHelper",
TagName = "p",
Attributes = new TagHelperAttributeDescriptor[]
{
new TagHelperAttributeDescriptor()
{
TypeName = typeof(ModelExpression).FullName,
Name = "Foo",
}
}
}
};
var engine = CreateEngine(tagHelpers);
var pass = new ModelExpressionPass()
{
Engine = engine,
};
var irDocument = CreateIRDocument(engine, codeDocument);
// Act
pass.Execute(codeDocument, irDocument);
// Assert
var tagHelper = FindTagHelperNode(irDocument);
var setProperty = tagHelper.Children.OfType ");
var tagHelpers = new[]
{
new TagHelperDescriptor()
{
AssemblyName = "TestAssembly",
TypeName = "TestTagHelper",
TagName = "p",
Attributes = new TagHelperAttributeDescriptor[]
{
new TagHelperAttributeDescriptor()
{
TypeName = typeof(ModelExpression).FullName,
Name = "Foo",
}
}
}
};
var engine = CreateEngine(tagHelpers);
var pass = new ModelExpressionPass()
{
Engine = engine,
};
var irDocument = CreateIRDocument(engine, codeDocument);
// Act
pass.Execute(codeDocument, irDocument);
// Assert
var tagHelper = FindTagHelperNode(irDocument);
var setProperty = tagHelper.Children.OfType