diff --git a/tests/Avalonia.Headless.NUnit.UnitTests/AssemblyInfo.cs b/tests/Avalonia.Headless.NUnit.UnitTests/AssemblyInfo.cs new file mode 100644 index 0000000000..1d5b99eb81 --- /dev/null +++ b/tests/Avalonia.Headless.NUnit.UnitTests/AssemblyInfo.cs @@ -0,0 +1,9 @@ +global using NUnit.Framework; +global using AvaloniaFactAttribute = Avalonia.Headless.NUnit.AvaloniaTestAttribute; +global using AvaloniaTheoryAttribute = Avalonia.Headless.NUnit.AvaloniaTheoryAttribute; +global using InlineDataAttribute = NUnit.Framework.TestCaseAttribute; + +using Avalonia.Headless; +using Avalonia.Headless.UnitTests; + +[assembly: AvaloniaTestApplication(typeof(TestApplication))] diff --git a/tests/Avalonia.Headless.NUnit.UnitTests/Avalonia.Headless.NUnit.UnitTests.csproj b/tests/Avalonia.Headless.NUnit.UnitTests/Avalonia.Headless.NUnit.UnitTests.csproj new file mode 100644 index 0000000000..19a82cb21c --- /dev/null +++ b/tests/Avalonia.Headless.NUnit.UnitTests/Avalonia.Headless.NUnit.UnitTests.csproj @@ -0,0 +1,29 @@ + + + net6.0 + true + $(DefineConstants);NUNIT + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/Avalonia.Headless.UnitTests/InputTests.cs b/tests/Avalonia.Headless.UnitTests/InputTests.cs index 3c0ecbfdb7..3fcd509fe2 100644 --- a/tests/Avalonia.Headless.UnitTests/InputTests.cs +++ b/tests/Avalonia.Headless.UnitTests/InputTests.cs @@ -2,13 +2,12 @@ using Avalonia.Controls; using Avalonia.Input; using Avalonia.Layout; using Avalonia.Threading; -using Xunit; namespace Avalonia.Headless.UnitTests; public class InputTests { - [Fact] + [AvaloniaFact] public void Should_Click_Button_On_Window() { var buttonClicked = false; diff --git a/tests/Avalonia.Headless.UnitTests/RenderingTests.cs b/tests/Avalonia.Headless.UnitTests/RenderingTests.cs index bc50686235..87fdd4ffbb 100644 --- a/tests/Avalonia.Headless.UnitTests/RenderingTests.cs +++ b/tests/Avalonia.Headless.UnitTests/RenderingTests.cs @@ -2,13 +2,12 @@ using Avalonia.Layout; using Avalonia.Media; using Avalonia.Threading; -using Xunit; namespace Avalonia.Headless.UnitTests; public class RenderingTests { - [Fact] + [AvaloniaFact] public void Should_Render_Last_Frame_To_Bitmap() { var window = new Window diff --git a/tests/Avalonia.Headless.UnitTests/TestApplication.cs b/tests/Avalonia.Headless.UnitTests/TestApplication.cs index 7bfa0144f3..ae923bf52e 100644 --- a/tests/Avalonia.Headless.UnitTests/TestApplication.cs +++ b/tests/Avalonia.Headless.UnitTests/TestApplication.cs @@ -1,10 +1,5 @@ using Avalonia.Headless.UnitTests; -using Avalonia.Headless.XUnit; using Avalonia.Themes.Simple; -using Xunit; - -[assembly: AvaloniaTestFramework(typeof(TestApplication))] -[assembly: CollectionBehavior(DisableTestParallelization = true)] namespace Avalonia.Headless.UnitTests; diff --git a/tests/Avalonia.Headless.UnitTests/ThreadingTests.cs b/tests/Avalonia.Headless.UnitTests/ThreadingTests.cs index 419ee5519e..e26b902eb1 100644 --- a/tests/Avalonia.Headless.UnitTests/ThreadingTests.cs +++ b/tests/Avalonia.Headless.UnitTests/ThreadingTests.cs @@ -2,31 +2,37 @@ using System.Threading; using System.Threading.Tasks; using Avalonia.Threading; -using Xunit; namespace Avalonia.Headless.UnitTests; public class ThreadingTests { - [Fact] + [AvaloniaFact] public void Should_Be_On_Dispatcher_Thread() { Dispatcher.UIThread.VerifyAccess(); } - [Fact] - public async Task DispatcherTimer_Works_On_The_Same_Thread() + [AvaloniaTheory] + [InlineData(1)] + [InlineData(10)] + [InlineData(100)] + public async Task DispatcherTimer_Works_On_The_Same_Thread(int interval) { + await Task.Delay(100); + var currentThread = Thread.CurrentThread; var tcs = new TaskCompletionSource(); + var hasCompleted = false; DispatcherTimer.RunOnce(() => { - Assert.Equal(currentThread, Thread.CurrentThread); + hasCompleted = currentThread == Thread.CurrentThread; tcs.SetResult(); - }, TimeSpan.FromTicks(1)); + }, TimeSpan.FromTicks(interval)); - await tcs.Task; + await tcs.Task; + Assert.True(hasCompleted); } } diff --git a/tests/Avalonia.Headless.XUnit.UnitTests/AssemblyInfo.cs b/tests/Avalonia.Headless.XUnit.UnitTests/AssemblyInfo.cs new file mode 100644 index 0000000000..3e4629907a --- /dev/null +++ b/tests/Avalonia.Headless.XUnit.UnitTests/AssemblyInfo.cs @@ -0,0 +1,7 @@ +global using Xunit; +global using Avalonia.Headless.XUnit; +using Avalonia.Headless; +using Avalonia.Headless.UnitTests; +using Avalonia.Headless.XUnit; + +[assembly: AvaloniaTestApplication(typeof(TestApplication))] diff --git a/tests/Avalonia.Headless.UnitTests/Avalonia.Headless.UnitTests.csproj b/tests/Avalonia.Headless.XUnit.UnitTests/Avalonia.Headless.XUnit.UnitTests.csproj similarity index 83% rename from tests/Avalonia.Headless.UnitTests/Avalonia.Headless.UnitTests.csproj rename to tests/Avalonia.Headless.XUnit.UnitTests/Avalonia.Headless.XUnit.UnitTests.csproj index 78a3ab186e..25578c3ad8 100644 --- a/tests/Avalonia.Headless.UnitTests/Avalonia.Headless.UnitTests.csproj +++ b/tests/Avalonia.Headless.XUnit.UnitTests/Avalonia.Headless.XUnit.UnitTests.csproj @@ -1,9 +1,10 @@ - net6.0 true + $(DefineConstants);XUNIT + @@ -11,6 +12,10 @@ + + + +