Support "@inherits ..." directive

This commit is contained in:
Steve Sanderson 2018-02-18 22:03:15 +00:00
parent a639cab50f
commit 782ca0137d
2 changed files with 19 additions and 0 deletions

View File

@ -22,6 +22,7 @@ namespace Microsoft.AspNetCore.Blazor.Razor
_engine = RazorEngine.Create(configure =>
{
FunctionsDirective.Register(configure);
InheritsDirective.Register(configure);
TemporaryLayoutPass.Register(configure);
TemporaryImplementsPass.Register(configure);

View File

@ -405,6 +405,22 @@ namespace Microsoft.AspNetCore.Blazor.Build.Test
frame => AssertFrame.Text(frame, "Hello"));
}
[Fact]
public void SupportsInheritsDirective()
{
// Arrange/Act
var testBaseClassTypeName = typeof(TestBaseClass).FullName.Replace('+', '.');
var component = CompileToComponent(
$"@inherits {testBaseClassTypeName}" + Environment.NewLine +
$"Hello");
var frames = GetRenderTree(component);
// Assert
Assert.IsAssignableFrom<TestBaseClass>(component);
Assert.Collection(frames,
frame => AssertFrame.Text(frame, "Hello"));
}
private static RenderTreeFrame[] GetRenderTree(IComponent component)
{
var renderer = new TestRenderer();
@ -554,5 +570,7 @@ namespace Microsoft.AspNetCore.Blazor.Build.Test
}
public interface ITestInterface { }
public class TestBaseClass : BlazorComponent { }
}
}