Exemple #1
0
        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();
        }
Exemple #2
0
        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);
        }
Exemple #4
0
        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);
        }