ReactiveUserControlTest.cs 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  1. // Copyright (c) The Avalonia Project. All rights reserved.
  2. // Licensed under the MIT license. See licence.md file in the project root for full license information.
  3. using Avalonia.Controls;
  4. using Avalonia.UnitTests;
  5. using ReactiveUI;
  6. using Splat;
  7. using Xunit;
  8. namespace Avalonia.ReactiveUI.UnitTests
  9. {
  10. public class ReactiveUserControlTest
  11. {
  12. public class ExampleViewModel : ReactiveObject { }
  13. public class ExampleView : ReactiveUserControl<ExampleViewModel> { }
  14. [Fact]
  15. public void Data_Context_Should_Stay_In_Sync_With_Reactive_User_Control_View_Model()
  16. {
  17. var view = new ExampleView();
  18. var viewModel = new ExampleViewModel();
  19. Assert.Null(view.ViewModel);
  20. view.DataContext = viewModel;
  21. Assert.Equal(view.ViewModel, viewModel);
  22. Assert.Equal(view.DataContext, viewModel);
  23. view.DataContext = null;
  24. Assert.Null(view.ViewModel);
  25. Assert.Null(view.DataContext);
  26. }
  27. }
  28. }