csharpc-sharpdotnetxamlavaloniauicross-platformcross-platform-xamlavaloniaguimulti-platformuser-interfacedotnetcore
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.7 KiB
41 lines
1.7 KiB
using System.Threading.Tasks;
|
|
using Avalonia.Generators.Common;
|
|
using Avalonia.Generators.Compiler;
|
|
using Avalonia.Generators.Tests.Views;
|
|
using Xunit;
|
|
|
|
namespace Avalonia.Generators.Tests;
|
|
|
|
public class XamlXClassResolverTests
|
|
{
|
|
[Theory]
|
|
[InlineData("Sample.App", "NamedControl", View.NamedControl)]
|
|
[InlineData("Sample.App", "AttachedProps", View.AttachedProps)]
|
|
[InlineData("Sample.App", "CustomControls", View.CustomControls)]
|
|
[InlineData("Sample.App", "DataTemplates", View.DataTemplates)]
|
|
[InlineData("Sample.App", "FieldModifier", View.FieldModifier)]
|
|
[InlineData("Sample.App", "NamedControls", View.NamedControls)]
|
|
[InlineData("Sample.App", "NoNamedControls", View.NoNamedControls)]
|
|
[InlineData("Sample.App", "SignUpView", View.SignUpView)]
|
|
[InlineData("Sample.App", "xNamedControl", View.XNamedControl)]
|
|
[InlineData("Sample.App", "xNamedControls", View.XNamedControls)]
|
|
[InlineData("Sample.App", "ViewWithGenericBaseView", View.ViewWithGenericBaseView)]
|
|
public async Task Should_Resolve_Base_Class_From_Xaml_File(string nameSpace, string className, string markup)
|
|
{
|
|
var xaml = await View.Load(markup);
|
|
var compilation = View
|
|
.CreateAvaloniaCompilation()
|
|
.WithCustomTextBox()
|
|
.WithBaseView();
|
|
|
|
var types = new RoslynTypeSystem(compilation);
|
|
var resolver = new XamlXViewResolver(
|
|
types,
|
|
MiniCompiler.CreateDefault(types, MiniCompiler.AvaloniaXmlnsDefinitionAttribute));
|
|
|
|
var resolvedClass = resolver.ResolveView(xaml);
|
|
Assert.NotNull(resolvedClass);
|
|
Assert.Equal(className, resolvedClass.ClassName);
|
|
Assert.Equal(nameSpace, resolvedClass.Namespace);
|
|
}
|
|
}
|
|
|