| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- using Avalonia.Controls.UnitTests;
- using Avalonia.Platform;
- using Xunit;
- [assembly: ExportAvaloniaModule("DefaultModule", typeof(AppBuilderTests.DefaultModule))]
- [assembly: ExportAvaloniaModule("RenderingModule", typeof(AppBuilderTests.Direct2DModule), ForRenderingSubsystem = "Direct2D1")]
- [assembly: ExportAvaloniaModule("RenderingModule", typeof(AppBuilderTests.SkiaModule), ForRenderingSubsystem = "Skia")]
- [assembly: ExportAvaloniaModule("RenderingModule", typeof(AppBuilderTests.DefaultRenderingModule))]
- namespace Avalonia.Controls.UnitTests
- {
- using AppBuilder = Avalonia.UnitTests.AppBuilder;
- public class AppBuilderTests
- {
- class App : Application
- {
- }
- public class DefaultModule
- {
- public static bool IsLoaded = false;
- public DefaultModule()
- {
- IsLoaded = true;
- }
- }
- public class DefaultRenderingModule
- {
- public static bool IsLoaded = false;
- public DefaultRenderingModule()
- {
- IsLoaded = true;
- }
- }
- public class Direct2DModule
- {
- public static bool IsLoaded = false;
- public Direct2DModule()
- {
- IsLoaded = true;
- }
- }
- public class SkiaModule
- {
- public static bool IsLoaded = false;
- public SkiaModule()
- {
- IsLoaded = true;
- }
- }
-
- [Fact]
- public void LoadsDefaultModule()
- {
- using (AvaloniaLocator.EnterScope())
- {
- ResetModuleLoadStates();
- AppBuilder.Configure<App>()
- .UseWindowingSubsystem(() => { })
- .UseRenderingSubsystem(() => { })
- .UseAvaloniaModules()
- .SetupWithoutStarting();
- Assert.True(DefaultModule.IsLoaded);
- }
- }
- [Fact]
- public void LoadsRenderingModuleWithMatchingRenderingSubsystem()
- {
- using (AvaloniaLocator.EnterScope())
- {
- ResetModuleLoadStates();
- var builder = AppBuilder.Configure<App>()
- .UseWindowingSubsystem(() => { })
- .UseRenderingSubsystem(() => { }, "Direct2D1");
- builder.UseAvaloniaModules().SetupWithoutStarting();
- Assert.False(DefaultRenderingModule.IsLoaded);
- Assert.True(Direct2DModule.IsLoaded);
- Assert.False(SkiaModule.IsLoaded);
- ResetModuleLoadStates();
- builder = AppBuilder.Configure<App>()
- .UseWindowingSubsystem(() => { })
- .UseRenderingSubsystem(() => { }, "Skia");
- builder.UseAvaloniaModules().SetupWithoutStarting();
- Assert.False(DefaultRenderingModule.IsLoaded);
- Assert.False(Direct2DModule.IsLoaded);
- Assert.True(SkiaModule.IsLoaded);
- }
- }
- [Fact]
- public void LoadsRenderingModuleWithoutDependenciesWhenNoModuleMatches()
- {
- using (AvaloniaLocator.EnterScope())
- {
- ResetModuleLoadStates();
- var builder = AppBuilder.Configure<App>()
- .UseWindowingSubsystem(() => { })
- .UseRenderingSubsystem(() => { }, "TBD");
- builder.UseAvaloniaModules().SetupWithoutStarting();
- Assert.True(DefaultRenderingModule.IsLoaded);
- Assert.False(Direct2DModule.IsLoaded);
- Assert.False(SkiaModule.IsLoaded);
- }
- }
- private static void ResetModuleLoadStates()
- {
- DefaultModule.IsLoaded = false;
- DefaultRenderingModule.IsLoaded = false;
- Direct2DModule.IsLoaded = false;
- SkiaModule.IsLoaded = false;
- }
- }
- }
|