|
|
|
@ -1,4 +1,3 @@ |
|
|
|
using Avalonia.Controls; |
|
|
|
using Avalonia.UnitTests; |
|
|
|
using ReactiveUI; |
|
|
|
using Splat; |
|
|
|
@ -12,6 +11,13 @@ namespace Avalonia.ReactiveUI.UnitTests |
|
|
|
|
|
|
|
public class ExampleWindow : ReactiveWindow<ExampleViewModel> { } |
|
|
|
|
|
|
|
public ReactiveWindowTest() => |
|
|
|
Locator |
|
|
|
.CurrentMutable |
|
|
|
.RegisterConstant( |
|
|
|
new AvaloniaActivationForViewFetcher(), |
|
|
|
typeof(IActivationForViewFetcher)); |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void Data_Context_Should_Stay_In_Sync_With_Reactive_Window_View_Model() |
|
|
|
{ |
|
|
|
@ -19,16 +25,27 @@ namespace Avalonia.ReactiveUI.UnitTests |
|
|
|
{ |
|
|
|
var view = new ExampleWindow(); |
|
|
|
var viewModel = new ExampleViewModel(); |
|
|
|
view.Show(); |
|
|
|
|
|
|
|
Assert.Null(view.ViewModel); |
|
|
|
Assert.Null(view.DataContext); |
|
|
|
|
|
|
|
view.DataContext = viewModel; |
|
|
|
Assert.Equal(view.ViewModel, viewModel); |
|
|
|
Assert.Equal(view.DataContext, viewModel); |
|
|
|
Assert.Equal(viewModel, view.ViewModel); |
|
|
|
Assert.Equal(viewModel, view.DataContext); |
|
|
|
|
|
|
|
view.DataContext = null; |
|
|
|
Assert.Null(view.ViewModel); |
|
|
|
Assert.Null(view.DataContext); |
|
|
|
|
|
|
|
view.ViewModel = viewModel; |
|
|
|
Assert.Equal(viewModel, view.ViewModel); |
|
|
|
Assert.Equal(viewModel, view.DataContext); |
|
|
|
|
|
|
|
view.ViewModel = null; |
|
|
|
Assert.Null(view.ViewModel); |
|
|
|
Assert.Null(view.DataContext); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|