public void ShouldCreateDifferentWindowsForEachView() { var view = new UserControl(); var view2 = new UserControl(); var region = new MockRegion(); var behavior = new TestableDialogActivationBehavior(this.windowManager); var parentCanvas = new Canvas(); behavior.HostControl = parentCanvas; behavior.Region = region; behavior.Attach(); region.MockActiveViews.TriggerNotifyCollectionChangedEvent(NotifyCollectionChangedAction.Add, view); region.MockActiveViews.TriggerNotifyCollectionChangedEvent(NotifyCollectionChangedAction.Add, view2); Assert.AreEqual(2, behavior.ViewMappings.Count); var windowForView = behavior.ViewMappings.ElementAt(0).Value; var windowForView2 = behavior.ViewMappings.ElementAt(1).Value; Assert.AreNotSame(windowForView, windowForView2); Assert.IsTrue(((MockWindow)windowForView).ShowCalled); Assert.IsTrue(((MockWindow)windowForView2).ShowCalled); }
public void ShouldDeactivateViewWhenClosed() { var view = new UserControl(); var region = new MockRegion(); var behavior = new TestableDialogActivationBehavior(); behavior.HostControl = new MockDependencyObject(); behavior.Region = region; behavior.Attach(); region.MockActiveViews.TriggerNotifyCollectionChangedEvent(NotifyCollectionChangedAction.Add, view); behavior.CreatedWindow.InvokeClosed(); Assert.IsTrue(region.DeactivateCalled); }
public void ShouldAlwaysShowOnlyLastActiveView() { var region = new MockRegion(); var behavior = new TestableDialogActivationBehavior(); behavior.HostControl = new MockDependencyObject(); behavior.Region = region; behavior.Attach(); var view1 = new UserControl(); region.MockActiveViews.TriggerNotifyCollectionChangedEvent(NotifyCollectionChangedAction.Add, view1); Assert.AreSame(view1, behavior.CreatedWindow.Content); var view2 = new UserControl(); region.MockActiveViews.TriggerNotifyCollectionChangedEvent(NotifyCollectionChangedAction.Add, view2); Assert.AreSame(view2, behavior.CreatedWindow.Content); }
public void ShouldCreateWindowOnViewActivation() { var parentWindow = new MockDependencyObject(); var region = new MockRegion(); var view = new UserControl(); var behavior = new TestableDialogActivationBehavior(); behavior.HostControl = parentWindow; behavior.Region = region; behavior.Attach(); region.MockActiveViews.TriggerNotifyCollectionChangedEvent(NotifyCollectionChangedAction.Add, view); Assert.IsNotNull(behavior.CreatedWindow); Assert.IsTrue(behavior.CreatedWindow.ShowCalled); Assert.AreSame(view, behavior.CreatedWindow.Content); Assert.AreSame(parentWindow, behavior.CreatedWindow.Owner); }
public void ShouldSetStyleToRegionWindow() { var parentControl = new Canvas(); var region = new MockRegion(); var behavior = new TestableDialogActivationBehavior(this.windowManager); behavior.HostControl = parentControl; behavior.Region = region; var regionStyle = new Style(); parentControl.SetValue(RegionWindowBehaviors.ContainerWindowStyleProperty, regionStyle); behavior.Attach(); var view = new UserControl(); region.MockActiveViews.TriggerNotifyCollectionChangedEvent(NotifyCollectionChangedAction.Add, view); Assert.AreEqual(regionStyle, behavior.ViewMappings.First().Value.Style); }
public void ShouldCloseCorrectWindowWhenRemovingViewFromRegion() { var view = new UserControl(); var view2 = new UserControl(); var region = new MockRegion(); var behavior = new TestableDialogActivationBehavior(this.windowManager); var parentCanvas = new Canvas(); behavior.HostControl = parentCanvas; behavior.Region = region; behavior.Attach(); region.MockActiveViews.TriggerNotifyCollectionChangedEvent(NotifyCollectionChangedAction.Add, view); region.MockActiveViews.TriggerNotifyCollectionChangedEvent(NotifyCollectionChangedAction.Add, view2); var windowForView = behavior.ViewMappings.ElementAt(0).Value; var windowForView2 = behavior.ViewMappings.ElementAt(1).Value; region.MockActiveViews.TriggerNotifyCollectionChangedEvent(NotifyCollectionChangedAction.Remove, view2); Assert.IsFalse(((MockWindow)windowForView).CloseCalled); Assert.IsTrue(((MockWindow)windowForView2).CloseCalled); }
public void ShouldSetStyleToRegionWindow() { var parentWindow = new MockDependencyObject(); var region = new MockRegion(); var behavior = new TestableDialogActivationBehavior(); behavior.HostControl = parentWindow; behavior.Region = region; var regionStyle = new Style(); parentWindow.SetValue(RegionPopupBehaviors.ContainerWindowStyleProperty, regionStyle); behavior.Attach(); var view = new UserControl(); region.MockActiveViews.TriggerNotifyCollectionChangedEvent(NotifyCollectionChangedAction.Add, view); Assert.AreEqual(regionStyle, behavior.CreatedWindow.Style); }