Browse Source

Fix tests

pull/8738/head
Max Katz 4 years ago
parent
commit
2fdba46f0c
  1. 14
      tests/Avalonia.ReactiveUI.UnitTests/AutoSuspendHelperTest.cs
  2. 11
      tests/Avalonia.ReactiveUI.UnitTests/AvaloniaActivationForViewFetcherTest.cs
  3. 5
      tests/Avalonia.ReactiveUI.UnitTests/ReactiveUserControlTest.cs
  4. 5
      tests/Avalonia.ReactiveUI.UnitTests/ReactiveWindowTest.cs
  5. 4
      tests/Avalonia.ReactiveUI.UnitTests/RoutedViewHostTest.cs
  6. 3
      tests/Avalonia.ReactiveUI.UnitTests/ViewModelViewHostTest.cs

14
tests/Avalonia.ReactiveUI.UnitTests/AutoSuspendHelperTest.cs

@ -7,6 +7,7 @@ using System.Reactive;
using System.Reactive.Subjects; using System.Reactive.Subjects;
using System.Reactive.Linq; using System.Reactive.Linq;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO;
using System.Runtime.Serialization; using System.Runtime.Serialization;
using System.Threading; using System.Threading;
using Avalonia.Controls.ApplicationLifetimes; using Avalonia.Controls.ApplicationLifetimes;
@ -17,6 +18,7 @@ using Avalonia.UnitTests;
using Avalonia.Markup.Xaml; using Avalonia.Markup.Xaml;
using Avalonia.ReactiveUI; using Avalonia.ReactiveUI;
using Avalonia; using Avalonia;
using Avalonia.Threading;
using ReactiveUI; using ReactiveUI;
using DynamicData; using DynamicData;
using Xunit; using Xunit;
@ -93,13 +95,23 @@ namespace Avalonia.ReactiveUI.UnitTests
var suspension = new AutoSuspendHelper(application.ApplicationLifetime); var suspension = new AutoSuspendHelper(application.ApplicationLifetime);
RxApp.SuspensionHost.CreateNewAppState = () => new AppState { Example = "Foo" }; RxApp.SuspensionHost.CreateNewAppState = () => new AppState { Example = "Foo" };
RxApp.SuspensionHost.ShouldPersistState.Subscribe(_ => shouldPersistReceived = true); RxApp.SuspensionHost.ShouldPersistState.Subscribe(_ => shouldPersistReceived = true);
RxApp.SuspensionHost.SetupDefaultSuspendResume(new DummySuspensionDriver()); RxApp.SuspensionHost.SetupDefaultSuspendResume(new FakeSuspensionDriver());
suspension.OnFrameworkInitializationCompleted(); suspension.OnFrameworkInitializationCompleted();
lifetime.Shutdown(); lifetime.Shutdown();
Assert.True(shouldPersistReceived); Assert.True(shouldPersistReceived);
Assert.Equal("Foo", RxApp.SuspensionHost.GetAppState<AppState>().Example); Assert.Equal("Foo", RxApp.SuspensionHost.GetAppState<AppState>().Example);
} }
} }
private class FakeSuspensionDriver : ISuspensionDriver
{
public IObservable<object> LoadState() => Observable.Empty<object>();
public IObservable<Unit> SaveState(object state) => Observable.Empty<Unit>();
public IObservable<Unit> InvalidateState() => Observable.Empty<Unit>();
}
} }
} }

11
tests/Avalonia.ReactiveUI.UnitTests/AvaloniaActivationForViewFetcherTest.cs

@ -12,6 +12,7 @@ using Xunit;
using Splat; using Splat;
using Avalonia.Markup.Xaml; using Avalonia.Markup.Xaml;
using Avalonia.ReactiveUI; using Avalonia.ReactiveUI;
using Avalonia.Threading;
namespace Avalonia.ReactiveUI.UnitTests namespace Avalonia.ReactiveUI.UnitTests
{ {
@ -109,10 +110,12 @@ namespace Avalonia.ReactiveUI.UnitTests
var fakeRenderedDecorator = new TestRoot(); var fakeRenderedDecorator = new TestRoot();
fakeRenderedDecorator.Child = userControl; fakeRenderedDecorator.Child = userControl;
Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded);
Assert.True(activated[0]); Assert.True(activated[0]);
Assert.Equal(1, activated.Count); Assert.Equal(1, activated.Count);
fakeRenderedDecorator.Child = null; fakeRenderedDecorator.Child = null;
Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded);
Assert.True(activated[0]); Assert.True(activated[0]);
Assert.False(activated[1]); Assert.False(activated[1]);
Assert.Equal(2, activated.Count); Assert.Equal(2, activated.Count);
@ -139,9 +142,11 @@ namespace Avalonia.ReactiveUI.UnitTests
var fakeRenderedDecorator = new TestRoot(); var fakeRenderedDecorator = new TestRoot();
fakeRenderedDecorator.Child = userControl; fakeRenderedDecorator.Child = userControl;
Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded);
Assert.True(userControl.Active); Assert.True(userControl.Active);
fakeRenderedDecorator.Child = null; fakeRenderedDecorator.Child = null;
Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded);
Assert.False(userControl.Active); Assert.False(userControl.Active);
} }
@ -154,9 +159,11 @@ namespace Avalonia.ReactiveUI.UnitTests
Assert.False(window.Active); Assert.False(window.Active);
window.Show(); window.Show();
Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded);
Assert.True(window.Active); Assert.True(window.Active);
window.Close(); window.Close();
Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded);
Assert.False(window.Active); Assert.False(window.Active);
} }
} }
@ -171,9 +178,11 @@ namespace Avalonia.ReactiveUI.UnitTests
Assert.False(viewModel.IsActivated); Assert.False(viewModel.IsActivated);
window.Show(); window.Show();
Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded);
Assert.True(viewModel.IsActivated); Assert.True(viewModel.IsActivated);
window.Close(); window.Close();
Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded);
Assert.False(viewModel.IsActivated); Assert.False(viewModel.IsActivated);
} }
} }
@ -187,9 +196,11 @@ namespace Avalonia.ReactiveUI.UnitTests
Assert.False(viewModel.IsActivated); Assert.False(viewModel.IsActivated);
root.Child = control; root.Child = control;
Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded);
Assert.True(viewModel.IsActivated); Assert.True(viewModel.IsActivated);
root.Child = null; root.Child = null;
Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded);
Assert.False(viewModel.IsActivated); Assert.False(viewModel.IsActivated);
} }
} }

5
tests/Avalonia.ReactiveUI.UnitTests/ReactiveUserControlTest.cs

@ -1,5 +1,6 @@
using System.Reactive.Disposables; using System.Reactive.Disposables;
using Avalonia.Controls; using Avalonia.Controls;
using Avalonia.Threading;
using Avalonia.UnitTests; using Avalonia.UnitTests;
using ReactiveUI; using ReactiveUI;
using Splat; using Splat;
@ -69,12 +70,14 @@ namespace Avalonia.ReactiveUI.UnitTests
Assert.False(view.ViewModel.IsActive); Assert.False(view.ViewModel.IsActive);
root.Child = view; root.Child = view;
Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded);
Assert.NotNull(view.ViewModel); Assert.NotNull(view.ViewModel);
Assert.NotNull(view.DataContext); Assert.NotNull(view.DataContext);
Assert.True(view.ViewModel.IsActive); Assert.True(view.ViewModel.IsActive);
root.Child = null; root.Child = null;
Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded);
Assert.NotNull(view.ViewModel); Assert.NotNull(view.ViewModel);
Assert.NotNull(view.DataContext); Assert.NotNull(view.DataContext);
@ -90,12 +93,14 @@ namespace Avalonia.ReactiveUI.UnitTests
Assert.False(view.ViewModel.IsActive); Assert.False(view.ViewModel.IsActive);
root.Child = view; root.Child = view;
Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded);
Assert.NotNull(view.ViewModel); Assert.NotNull(view.ViewModel);
Assert.NotNull(view.DataContext); Assert.NotNull(view.DataContext);
Assert.True(view.ViewModel.IsActive); Assert.True(view.ViewModel.IsActive);
root.Child = null; root.Child = null;
Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded);
Assert.NotNull(view.ViewModel); Assert.NotNull(view.ViewModel);
Assert.NotNull(view.DataContext); Assert.NotNull(view.DataContext);

5
tests/Avalonia.ReactiveUI.UnitTests/ReactiveWindowTest.cs

@ -1,4 +1,5 @@
using System.Reactive.Disposables; using System.Reactive.Disposables;
using Avalonia.Threading;
using Avalonia.UnitTests; using Avalonia.UnitTests;
using ReactiveUI; using ReactiveUI;
using Splat; using Splat;
@ -72,12 +73,14 @@ namespace Avalonia.ReactiveUI.UnitTests
Assert.False(view.ViewModel.IsActive); Assert.False(view.ViewModel.IsActive);
view.Show(); view.Show();
Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded);
Assert.NotNull(view.ViewModel); Assert.NotNull(view.ViewModel);
Assert.NotNull(view.DataContext); Assert.NotNull(view.DataContext);
Assert.True(view.ViewModel.IsActive); Assert.True(view.ViewModel.IsActive);
view.Close(); view.Close();
Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded);
Assert.NotNull(view.ViewModel); Assert.NotNull(view.ViewModel);
Assert.NotNull(view.DataContext); Assert.NotNull(view.DataContext);
@ -96,12 +99,14 @@ namespace Avalonia.ReactiveUI.UnitTests
view.Show(); view.Show();
Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded);
Assert.NotNull(view.ViewModel); Assert.NotNull(view.ViewModel);
Assert.NotNull(view.DataContext); Assert.NotNull(view.DataContext);
Assert.True(view.ViewModel.IsActive); Assert.True(view.ViewModel.IsActive);
view.Close(); view.Close();
Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded);
Assert.NotNull(view.ViewModel); Assert.NotNull(view.ViewModel);
Assert.NotNull(view.DataContext); Assert.NotNull(view.DataContext);
Assert.False(view.ViewModel.IsActive); Assert.False(view.ViewModel.IsActive);

4
tests/Avalonia.ReactiveUI.UnitTests/RoutedViewHostTest.cs

@ -15,6 +15,7 @@ using System.ComponentModel;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Reactive; using System.Reactive;
using Avalonia.ReactiveUI; using Avalonia.ReactiveUI;
using Avalonia.Threading;
namespace Avalonia.ReactiveUI.UnitTests namespace Avalonia.ReactiveUI.UnitTests
{ {
@ -75,6 +76,7 @@ namespace Avalonia.ReactiveUI.UnitTests
Child = host Child = host
}; };
Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded);
Assert.NotNull(host.Content); Assert.NotNull(host.Content);
Assert.IsType<TextBlock>(host.Content); Assert.IsType<TextBlock>(host.Content);
Assert.Equal(defaultContent, host.Content); Assert.Equal(defaultContent, host.Content);
@ -126,6 +128,7 @@ namespace Avalonia.ReactiveUI.UnitTests
Child = host Child = host
}; };
Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded);
Assert.NotNull(host.Content); Assert.NotNull(host.Content);
Assert.IsType<TextBlock>(host.Content); Assert.IsType<TextBlock>(host.Content);
Assert.Equal(defaultContent, host.Content); Assert.Equal(defaultContent, host.Content);
@ -191,6 +194,7 @@ namespace Avalonia.ReactiveUI.UnitTests
Child = host Child = host
}; };
Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded);
Assert.NotNull(host.Content); Assert.NotNull(host.Content);
Assert.Equal(defaultContent, host.Content); Assert.Equal(defaultContent, host.Content);

3
tests/Avalonia.ReactiveUI.UnitTests/ViewModelViewHostTest.cs

@ -1,4 +1,5 @@
using Avalonia.Controls; using Avalonia.Controls;
using Avalonia.Threading;
using Avalonia.UnitTests; using Avalonia.UnitTests;
using ReactiveUI; using ReactiveUI;
using Splat; using Splat;
@ -46,6 +47,7 @@ namespace Avalonia.ReactiveUI.UnitTests
Child = host Child = host
}; };
Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded);
Assert.NotNull(host.Content); Assert.NotNull(host.Content);
Assert.Equal(typeof(TextBlock), host.Content.GetType()); Assert.Equal(typeof(TextBlock), host.Content.GetType());
Assert.Equal(defaultContent, host.Content); Assert.Equal(defaultContent, host.Content);
@ -91,6 +93,7 @@ namespace Avalonia.ReactiveUI.UnitTests
Child = host Child = host
}; };
Dispatcher.UIThread.RunJobs(DispatcherPriority.Loaded);
Assert.NotNull(host.Content); Assert.NotNull(host.Content);
Assert.Equal(typeof(TextBlock), host.Content.GetType()); Assert.Equal(typeof(TextBlock), host.Content.GetType());
Assert.Equal(defaultContent, host.Content); Assert.Equal(defaultContent, host.Content);

Loading…
Cancel
Save