public void CloseExists() { CreateContainerWithRealMessageBus(); var title = Guid.NewGuid().ToString(); var viewModel = Substitute.For<ITitledViewModel>(); viewModel.Title.Returns(title); var view = new FrameworkElement(); view.DataContext = viewModel; var viewTarget = ViewTargets.DefaultView; var viewResult = new ViewResult(view, viewTarget); var viewBuilder = Substitute.For<IViewFactory>(); viewBuilder.Build(Arg.Any<ViewTargets>(), Arg.Any<Object>()) .Returns(viewResult); ComponentContainer.Container.Register(Component.For<IViewFactory>().Instance(viewBuilder)); var window = new Window(); var tabControl = new TabControl(); var viewController = new ViewPlacer(window, tabControl); var newTabItem = new TabItem() { Header = title }; tabControl.Items.Add(newTabItem); var message = new CloseViewMessage(title); _MessageBus.Publish<CloseViewMessage>(message); Assert.AreEqual(0, tabControl.Items.Count); }
public void PlaceView(ViewResult viewResult) { if (viewResult.ViewTarget == MoviesViewTargets.AdvancedSearch) { ModalViewPlacer.PlaceView(viewResult); } else { var exists = false; var title = GetTitleFromViewModel(viewResult.View.DataContext); foreach (TabItem tabItem in MainTabControl.Items) { if (tabItem.Header.ToString() == title) { exists = true; break; } } if (!exists) { var newTabItem = new TabItem() { Header = title, Content = viewResult.View }; MainTabControl.Items.Add(newTabItem); newTabItem.Focus(); } } }
public void Create() { var view = new FrameworkElement(); var viewResult = new ViewResult(view, ViewTargets.DefaultView); Assert.AreSame(view, viewResult.View); Assert.AreEqual(ViewTargets.DefaultView, viewResult.ViewTarget); }
public void PlaceView_ThrowsExceptionWithBadView() { var appWindow = new Window(); var messageBus = Substitute.For<IMessageBus>(); var view = new FrameworkElement(); var viewResult = new ViewResult(view, ViewTargets.DefaultView); var viewPlacer = new ModalViewPlacer(appWindow, messageBus); viewPlacer.PlaceView(viewResult); }
public void ShowView() { var view = new FrameworkElement(); var viewController = GetViewController(false); var viewResult = new ViewResult(view, ViewTargets.DefaultView); _viewFactory.Build(Arg.Any<ViewTargets>(), Arg.Any<Object>()) .Returns(viewResult); var message = new ShowViewMessage(ViewTargets.DefaultView); _messageBus.Publish<ShowViewMessage>(message); _viewPlacer.Received().PlaceView(viewResult); }
public void PlaceView() { var appWindow = new Window(); var messageBus = Substitute.For<IMessageBus>(); var viewModel = Substitute.For<IModalViewModel>(); var view = new MockModalView(); view.DataContext = viewModel; var viewResult = new ViewResult(view, ViewTargets.DefaultView); var viewPlacer = new ModalViewPlacer(appWindow, messageBus); viewPlacer.PlaceView(viewResult); Assert.IsTrue(view.ShowModalCalled); messageBus.Received().Publish<ModalViewClosedMessage>(Arg.Any<ModalViewClosedMessage>()); }
/// <summary> /// Places a view into the user interface. /// </summary> /// <param name="viewResult"> /// The <see cref="ViewResult"/> containing the view to be placed. /// </param> public void PlaceView(ViewResult viewResult) { var view = viewResult.View as IModalView; if (view != null) { var modalViewModel = viewResult.View.DataContext as IModalViewModel; if (modalViewModel != null) { modalViewModel.RequestClose += view.OnRequestClose; } view.Owner = AppWindow; view.ShowModal(); var closedMessage = new ModalViewClosedMessage(viewResult.ViewTarget, view.Accepted, view.ViewResult); MessageBus.Publish<ModalViewClosedMessage>(closedMessage); } else { throw new ArgumentException("Views must implement IModalView."); } }
public void ShowView() { CreateContainer(); var title = Guid.NewGuid().ToString(); var viewModel = Substitute.For<ITitledViewModel>(); viewModel.Title.Returns(title); var view = new FrameworkElement(); view.DataContext = viewModel; var viewTarget = ViewTargets.DefaultView; var viewResult = new ViewResult(view, viewTarget); var window = new Window(); var tabControl = new TabControl(); var viewPlacer = new ViewPlacer(window, tabControl); viewPlacer.PlaceView(viewResult); var viewFound = false; foreach (TabItem tabItem in tabControl.Items) { if (tabItem.Header.ToString() == title) { viewFound = true; } } Assert.IsTrue(viewFound); }
public void ShowView_InvalidViewModel() { CreateContainer(); var viewModel = new object(); var view = new FrameworkElement(); view.DataContext = viewModel; var viewTarget = ViewTargets.DefaultView; var viewResult = new ViewResult(view, viewTarget); var window = new Window(); var tabControl = new TabControl(); var viewPlacer = new ViewPlacer(window, tabControl); viewPlacer.PlaceView(viewResult); }
public void ShowView_AdvancedSearch() { CreateContainer(); var title = Guid.NewGuid().ToString(); var viewModel = Substitute.For<IModalViewModel>(); var view = new MockModalView(); view.DataContext = viewModel; var viewTarget = MoviesViewTargets.AdvancedSearch; var viewResult = new ViewResult(view, viewTarget); var window = new Window(); var tabControl = new TabControl(); var viewPlacer = new ViewPlacer(window, tabControl); viewPlacer.PlaceView(viewResult); Assert.IsTrue(view.ShowModalCalled); _MessageBus.Received().Publish<ModalViewClosedMessage>(Arg.Any<ModalViewClosedMessage>()); }
public void ShowViewDoNotDisplay() { var view = new FrameworkElement(); var viewController = GetViewController(true); var viewResult = new ViewResult(view, ViewTargets.DefaultView); _viewFactory.Build(Arg.Any<ViewTargets>(), Arg.Any<Object>()) .Returns(viewResult); _viewAuthorizer.AuthorizeView(Arg.Any<ViewTargets>()) .Returns(ViewAuthorizations.DoNotDisplay); var message = new ShowViewMessage(ViewTargets.DefaultView); _messageBus.Publish<ShowViewMessage>(message); _viewPlacer.DidNotReceive().PlaceView(viewResult); }