コード例 #1
0
        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);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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);
        }