public void LifecycleAwareCloseTest([Values] bool isDialog) { var viewModelMock = new Mock <ILifecycleAware>(MockBehavior.Loose); viewModelMock .Setup(x => x.Close()) .Verifiable(); var viewModel = viewModelMock.Object; var view = new MockWindowView() { DataContext = viewModel }; _viewManagerMock .Setup(x => x.GetViewFor(viewModel)) .Returns(view); if (isDialog) { _windowManager.ShowDialog(viewModel); } else { _windowManager.ShowWindow(viewModel); } viewModelMock.Verify(); }
public void BindWindowTitleExistingTest( [Values] bool isDialog, [Values] bool isUserControl) { const string title = "Window Title"; const string existingTitle = "Existing Window Title"; var viewModelMock = new Mock <IHaveTitle>(MockBehavior.Strict); viewModelMock.Setup(x => x.Title).Returns(title); var viewModel = viewModelMock.Object; string actualTitle = string.Empty; FrameworkElement view = null; if (isUserControl) { var userControlView = new MockUserControlView() { DataContext = viewModel }; userControlView.OnLoadedAction = userControl => actualTitle = (userControl.Parent as Window)?.Title; view = userControlView; } else { var windowView = new MockWindowView() { DataContext = viewModel, Title = existingTitle }; windowView.OnLoadedAction = window => actualTitle = window.Title; Assert.AreEqual(existingTitle, windowView.Title); view = windowView; } _viewManagerMock .Setup(x => x.GetViewFor(viewModel)) .Returns(view); if (isDialog) { _windowManager.ShowDialog(viewModel); } else { _windowManager.ShowWindow(viewModel); } if (isUserControl) { Assert.AreEqual(title, actualTitle); } else { Assert.AreEqual(existingTitle, actualTitle); } }
public void WindowManagerEnsureWindowForWindowTest() { var windowManager = new MockWindowManager(_viewManager); Window window = new MockWindowView(); var view = windowManager.EnsureWindow(window, false); Assert.AreSame(window, view); }
public void ShowDialogTest([Values] bool isAnotherActiveWindow) { var viewModel = new object(); var view = new MockWindowView() { DataContext = viewModel }; Window ownerWindow = null; if (isAnotherActiveWindow) { ownerWindow = new Window() { Height = 1, Width = 1, WindowState = WindowState.Minimized }; ownerWindow.Show(); } _windowManager.GetActiveWindow = () => ownerWindow; bool windowShown = false; view.OnLoadedAction = window => { windowShown = true; Assert.AreSame(viewModel, window.DataContext); if (isAnotherActiveWindow) { Assert.AreSame(ownerWindow, window.Owner); } else { Assert.Null(window.Owner); } }; _viewManagerMock .Setup(x => x.GetViewFor(viewModel)) .Returns(view); _windowManager.ShowDialog(viewModel); _viewManagerMock.Verify(x => x.GetViewFor(viewModel)); Assert.True(windowShown); }