public bool VerifyClosingCommandCancellation(bool userCancel)
        {
            var dialogStub = new Mock <IDialogNavigationService>();

            dialogStub.Setup(d => d.NavigateModal(It.IsAny <IDialogViewModel>()))
            .Returns(new BaseDialogResult(userCancel));

            var viewModel = new DockLayoutViewModel(dialogStub.Object);

            //Create panel view model stub
            var panelViewModelStub = new Mock <IPanelViewModel>();

            panelViewModelStub.SetupAllProperties();
            panelViewModelStub.SetupGet(p => p.IsDirty).Returns(true);

            //Add stub to dock view model
            viewModel.AddDockPanelViewModel(panelViewModelStub.Object);

            var args = new ItemCancelEventArgs(new LayoutPanel()
            {
                Content = panelViewModelStub.Object
            });

            //Act
            viewModel.DockPanelClosingCommand.Execute(args);

            return(args.Cancel);
        }
        public void VerifyViewModelIsSetAndSelectedWhenAdding()
        {
            var dialogMock = new Mock <IDialogNavigationService>();
            var viewModel  = new DockLayoutViewModel(dialogMock.Object);

            var panelViewModel = Mock.Of <IPanelViewModel>();

            viewModel.AddDockPanelViewModel(panelViewModel);

            Assert.That(viewModel.DockPanelViewModels.Single(), Is.EqualTo(panelViewModel));
            Assert.IsTrue(viewModel.DockPanelViewModels.Single().IsSelected);
        }
        public void VerifyCloseCommandRemovesPanelViewModel()
        {
            var viewModel = new DockLayoutViewModel(Mock.Of <IDialogNavigationService>());

            var panelViewModelStub = Mock.Of <IPanelViewModel>();

            viewModel.AddDockPanelViewModel(panelViewModelStub);

            viewModel.DockPanelClosedCommand.Execute(new DockItemClosedEventArgs(null, new[] { new LayoutPanel()
                                                                                               {
                                                                                                   Content = panelViewModelStub
                                                                                               } }));
            Assert.IsEmpty(viewModel.DockPanelViewModels);
        }