Browse Source

Enable turning off the setup check for appbuilder tests.

pull/1251/head
Jeremy Koritzinsky 9 years ago
parent
commit
ba481365f6
  1. 13
      src/Avalonia.Controls/AppBuilderBase.cs
  2. 6
      tests/Avalonia.Controls.UnitTests/AppBuilderTests.cs

13
src/Avalonia.Controls/AppBuilderBase.cs

@ -209,6 +209,17 @@ namespace Avalonia.Controls
public TAppBuilder UseAvaloniaModules() => AfterSetup(builder => SetupAvaloniaModules());
private bool CheckSetup { get; set; } = true;
/// <summary>
/// Set this AppBuilder to ignore the setup check. Used for testing purposes.
/// </summary>
internal TAppBuilder IgnoreSetupCheck()
{
CheckSetup = false;
return Self;
}
private void SetupAvaloniaModules()
{
var moduleInitializers = from assembly in AvaloniaLocator.Current.GetService<IRuntimePlatform>().GetLoadedAssemblies()
@ -254,7 +265,7 @@ namespace Avalonia.Controls
throw new InvalidOperationException("No rendering system configured.");
}
if (s_setupWasAlreadyCalled)
if (s_setupWasAlreadyCalled && CheckSetup)
{
throw new InvalidOperationException("Setup was already called on one of AppBuilder instances");
}

6
tests/Avalonia.Controls.UnitTests/AppBuilderTests.cs

@ -65,6 +65,7 @@ namespace Avalonia.Controls.UnitTests
{
ResetModuleLoadStates();
AppBuilder.Configure<App>()
.IgnoreSetupCheck()
.UseWindowingSubsystem(() => { })
.UseRenderingSubsystem(() => { })
.UseAvaloniaModules()
@ -81,6 +82,7 @@ namespace Avalonia.Controls.UnitTests
{
ResetModuleLoadStates();
var builder = AppBuilder.Configure<App>()
.IgnoreSetupCheck()
.UseWindowingSubsystem(() => { })
.UseRenderingSubsystem(() => { }, "Direct2D1");
builder.UseAvaloniaModules().SetupWithoutStarting();
@ -90,6 +92,7 @@ namespace Avalonia.Controls.UnitTests
ResetModuleLoadStates();
builder = AppBuilder.Configure<App>()
.IgnoreSetupCheck()
.UseWindowingSubsystem(() => { })
.UseRenderingSubsystem(() => { }, "Skia");
builder.UseAvaloniaModules().SetupWithoutStarting();
@ -99,13 +102,14 @@ namespace Avalonia.Controls.UnitTests
}
}
[Fact (Skip = "We don't have rendering modules with dependencies right now")]
[Fact]
public void LoadsRenderingModuleWithoutDependenciesWhenNoModuleMatches()
{
using (AvaloniaLocator.EnterScope())
{
ResetModuleLoadStates();
var builder = AppBuilder.Configure<App>()
.IgnoreSetupCheck()
.UseWindowingSubsystem(() => { })
.UseRenderingSubsystem(() => { }, "TBD");
builder.UseAvaloniaModules().SetupWithoutStarting();

Loading…
Cancel
Save