diff --git a/tests/Avalonia.ReactiveUI.UnitTests/AutoSuspendHelperTest.cs b/tests/Avalonia.ReactiveUI.UnitTests/AutoSuspendHelperTest.cs index c10f0ffcdb..196375fb40 100644 --- a/tests/Avalonia.ReactiveUI.UnitTests/AutoSuspendHelperTest.cs +++ b/tests/Avalonia.ReactiveUI.UnitTests/AutoSuspendHelperTest.cs @@ -7,6 +7,7 @@ using System.Reactive; using System.Reactive.Subjects; using System.Reactive.Linq; using System.Collections.Generic; +using System.IO; using System.Runtime.Serialization; using System.Threading; using Avalonia.Controls.ApplicationLifetimes; @@ -17,6 +18,7 @@ using Avalonia.UnitTests; using Avalonia.Markup.Xaml; using Avalonia.ReactiveUI; using Avalonia; +using Avalonia.Threading; using ReactiveUI; using DynamicData; using Xunit; @@ -93,13 +95,23 @@ namespace Avalonia.ReactiveUI.UnitTests var suspension = new AutoSuspendHelper(application.ApplicationLifetime); RxApp.SuspensionHost.CreateNewAppState = () => new AppState { Example = "Foo" }; RxApp.SuspensionHost.ShouldPersistState.Subscribe(_ => shouldPersistReceived = true); - RxApp.SuspensionHost.SetupDefaultSuspendResume(new DummySuspensionDriver()); + RxApp.SuspensionHost.SetupDefaultSuspendResume(new FakeSuspensionDriver()); suspension.OnFrameworkInitializationCompleted(); lifetime.Shutdown(); + Assert.True(shouldPersistReceived); Assert.Equal("Foo", RxApp.SuspensionHost.GetAppState().Example); } } + + private class FakeSuspensionDriver : ISuspensionDriver + { + public IObservable LoadState() => Observable.Empty(); + + public IObservable SaveState(object state) => Observable.Empty(); + + public IObservable InvalidateState() => Observable.Empty(); + } } } diff --git a/tests/Avalonia.ReactiveUI.UnitTests/AvaloniaActivationForViewFetcherTest.cs b/tests/Avalonia.ReactiveUI.UnitTests/AvaloniaActivationForViewFetcherTest.cs index c66a3c4ba1..a4e669cb34 100644 --- a/tests/Avalonia.ReactiveUI.UnitTests/AvaloniaActivationForViewFetcherTest.cs +++ b/tests/Avalonia.ReactiveUI.UnitTests/AvaloniaActivationForViewFetcherTest.cs @@ -12,6 +12,7 @@ using Xunit; using Splat; using Avalonia.Markup.Xaml; using Avalonia.ReactiveUI; +using Avalonia.Threading; namespace Avalonia.ReactiveUI.UnitTests { @@ -109,10 +110,12 @@ namespace Avalonia.ReactiveUI.UnitTests var fakeRenderedDecorator = new TestRoot(); fakeRenderedDecorator.Child = userControl; + Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded); Assert.True(activated[0]); Assert.Equal(1, activated.Count); fakeRenderedDecorator.Child = null; + Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded); Assert.True(activated[0]); Assert.False(activated[1]); Assert.Equal(2, activated.Count); @@ -139,9 +142,11 @@ namespace Avalonia.ReactiveUI.UnitTests var fakeRenderedDecorator = new TestRoot(); fakeRenderedDecorator.Child = userControl; + Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded); Assert.True(userControl.Active); fakeRenderedDecorator.Child = null; + Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded); Assert.False(userControl.Active); } @@ -154,9 +159,11 @@ namespace Avalonia.ReactiveUI.UnitTests Assert.False(window.Active); window.Show(); + Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded); Assert.True(window.Active); window.Close(); + Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded); Assert.False(window.Active); } } @@ -171,9 +178,11 @@ namespace Avalonia.ReactiveUI.UnitTests Assert.False(viewModel.IsActivated); window.Show(); + Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded); Assert.True(viewModel.IsActivated); window.Close(); + Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded); Assert.False(viewModel.IsActivated); } } @@ -187,9 +196,11 @@ namespace Avalonia.ReactiveUI.UnitTests Assert.False(viewModel.IsActivated); root.Child = control; + Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded); Assert.True(viewModel.IsActivated); root.Child = null; + Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded); Assert.False(viewModel.IsActivated); } } diff --git a/tests/Avalonia.ReactiveUI.UnitTests/ReactiveUserControlTest.cs b/tests/Avalonia.ReactiveUI.UnitTests/ReactiveUserControlTest.cs index 4dd60e21c5..4bf999bed0 100644 --- a/tests/Avalonia.ReactiveUI.UnitTests/ReactiveUserControlTest.cs +++ b/tests/Avalonia.ReactiveUI.UnitTests/ReactiveUserControlTest.cs @@ -1,5 +1,6 @@ using System.Reactive.Disposables; using Avalonia.Controls; +using Avalonia.Threading; using Avalonia.UnitTests; using ReactiveUI; using Splat; @@ -69,12 +70,14 @@ namespace Avalonia.ReactiveUI.UnitTests Assert.False(view.ViewModel.IsActive); root.Child = view; + Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded); Assert.NotNull(view.ViewModel); Assert.NotNull(view.DataContext); Assert.True(view.ViewModel.IsActive); root.Child = null; + Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded); Assert.NotNull(view.ViewModel); Assert.NotNull(view.DataContext); @@ -90,12 +93,14 @@ namespace Avalonia.ReactiveUI.UnitTests Assert.False(view.ViewModel.IsActive); root.Child = view; + Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded); Assert.NotNull(view.ViewModel); Assert.NotNull(view.DataContext); Assert.True(view.ViewModel.IsActive); root.Child = null; + Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded); Assert.NotNull(view.ViewModel); Assert.NotNull(view.DataContext); diff --git a/tests/Avalonia.ReactiveUI.UnitTests/ReactiveWindowTest.cs b/tests/Avalonia.ReactiveUI.UnitTests/ReactiveWindowTest.cs index 18a8a33f09..a71a500ed9 100644 --- a/tests/Avalonia.ReactiveUI.UnitTests/ReactiveWindowTest.cs +++ b/tests/Avalonia.ReactiveUI.UnitTests/ReactiveWindowTest.cs @@ -1,4 +1,5 @@ using System.Reactive.Disposables; +using Avalonia.Threading; using Avalonia.UnitTests; using ReactiveUI; using Splat; @@ -72,12 +73,14 @@ namespace Avalonia.ReactiveUI.UnitTests Assert.False(view.ViewModel.IsActive); view.Show(); + Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded); Assert.NotNull(view.ViewModel); Assert.NotNull(view.DataContext); Assert.True(view.ViewModel.IsActive); view.Close(); + Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded); Assert.NotNull(view.ViewModel); Assert.NotNull(view.DataContext); @@ -96,12 +99,14 @@ namespace Avalonia.ReactiveUI.UnitTests view.Show(); + Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded); Assert.NotNull(view.ViewModel); Assert.NotNull(view.DataContext); Assert.True(view.ViewModel.IsActive); view.Close(); + Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded); Assert.NotNull(view.ViewModel); Assert.NotNull(view.DataContext); Assert.False(view.ViewModel.IsActive); diff --git a/tests/Avalonia.ReactiveUI.UnitTests/RoutedViewHostTest.cs b/tests/Avalonia.ReactiveUI.UnitTests/RoutedViewHostTest.cs index 244b5abc4e..56c7863861 100644 --- a/tests/Avalonia.ReactiveUI.UnitTests/RoutedViewHostTest.cs +++ b/tests/Avalonia.ReactiveUI.UnitTests/RoutedViewHostTest.cs @@ -15,6 +15,7 @@ using System.ComponentModel; using System.Threading.Tasks; using System.Reactive; using Avalonia.ReactiveUI; +using Avalonia.Threading; namespace Avalonia.ReactiveUI.UnitTests { @@ -75,6 +76,7 @@ namespace Avalonia.ReactiveUI.UnitTests Child = host }; + Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded); Assert.NotNull(host.Content); Assert.IsType(host.Content); Assert.Equal(defaultContent, host.Content); @@ -126,6 +128,7 @@ namespace Avalonia.ReactiveUI.UnitTests Child = host }; + Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded); Assert.NotNull(host.Content); Assert.IsType(host.Content); Assert.Equal(defaultContent, host.Content); @@ -191,6 +194,7 @@ namespace Avalonia.ReactiveUI.UnitTests Child = host }; + Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded); Assert.NotNull(host.Content); Assert.Equal(defaultContent, host.Content); diff --git a/tests/Avalonia.ReactiveUI.UnitTests/ViewModelViewHostTest.cs b/tests/Avalonia.ReactiveUI.UnitTests/ViewModelViewHostTest.cs index 858c476227..3d60e56c65 100644 --- a/tests/Avalonia.ReactiveUI.UnitTests/ViewModelViewHostTest.cs +++ b/tests/Avalonia.ReactiveUI.UnitTests/ViewModelViewHostTest.cs @@ -1,4 +1,5 @@ using Avalonia.Controls; +using Avalonia.Threading; using Avalonia.UnitTests; using ReactiveUI; using Splat; @@ -46,6 +47,7 @@ namespace Avalonia.ReactiveUI.UnitTests Child = host }; + Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded); Assert.NotNull(host.Content); Assert.Equal(typeof(TextBlock), host.Content.GetType()); Assert.Equal(defaultContent, host.Content); @@ -91,6 +93,7 @@ namespace Avalonia.ReactiveUI.UnitTests Child = host }; + Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded); Assert.NotNull(host.Content); Assert.Equal(typeof(TextBlock), host.Content.GetType()); Assert.Equal(defaultContent, host.Content);