Browse Source

More scoping for tests

pull/11556/head
Nikita Tsukanov 3 years ago
parent
commit
b56bf1c527
  1. 5
      src/Avalonia.Base/Threading/Dispatcher.Queue.cs
  2. 2
      tests/Avalonia.Base.UnitTests/Rendering/CompositorTestsBase.cs
  3. 12
      tests/Avalonia.Markup.Xaml.UnitTests/XamlTestBase.cs
  4. 4
      tests/Avalonia.UnitTests/ScopedTestBase.cs

5
src/Avalonia.Base/Threading/Dispatcher.Queue.cs

@ -83,6 +83,11 @@ public partial class Dispatcher
{
}
}
internal static void ResetBeforeUnitTests()
{
s_uiThread = null;
}
internal static void ResetForUnitTests()
{

2
tests/Avalonia.Base.UnitTests/Rendering/CompositorTestsBase.cs

@ -22,7 +22,7 @@ using Xunit;
namespace Avalonia.Base.UnitTests.Rendering;
public class CompositorTestsBase
public class CompositorTestsBase : ScopedTestBase
{
protected class CompositorCanvas : CompositorTestServices
{

12
tests/Avalonia.Markup.Xaml.UnitTests/XamlTestBase.cs

@ -17,6 +17,13 @@ namespace Avalonia.Markup.Xaml.UnitTests
{
var _ = typeof(Binding);
GC.KeepAlive(typeof(ItemsRepeater).Assembly);
}
}
public class XamlTestBase : ScopedTestBase
{
public XamlTestBase()
{
if (AvaloniaLocator.Current.GetService<AvaloniaXamlLoader.IRuntimeXamlLoader>() == null)
AvaloniaLocator.CurrentMutable.Bind<AvaloniaXamlLoader.IRuntimeXamlLoader>()
.ToConstant(new TestXamlLoaderShim());
@ -28,9 +35,4 @@ namespace Avalonia.Markup.Xaml.UnitTests
=> AvaloniaRuntimeXamlLoader.Load(document, configuration);
}
}
public class XamlTestBase : ScopedTestBase
{
}
}

4
tests/Avalonia.UnitTests/ScopedTestBase.cs

@ -1,4 +1,5 @@
using System;
using Avalonia.Threading;
namespace Avalonia.UnitTests;
@ -8,11 +9,14 @@ public class ScopedTestBase : IDisposable
public ScopedTestBase()
{
AvaloniaLocator.Current = AvaloniaLocator.CurrentMutable = new AvaloniaLocator();
Dispatcher.ResetBeforeUnitTests();
_scope = AvaloniaLocator.EnterScope();
}
public virtual void Dispose()
{
Dispatcher.ResetForUnitTests();
_scope.Dispose();
}
}
Loading…
Cancel
Save