Exemple #1
0
        public void SetResultWindow()
        {
            UIWindowRegion service = new UIWindowRegion()
            {
                RegionName = "region"
            };

            ModuleManager.DefaultImplementation.GetRegionImplementation("region").RegisterUIRegion(service);
            var serviceHelper = InjectionTestHelper.CreateServiceHelper(service);

            object vm1 = null;
            object vm2 = null;

            Manager.Register("region", new Module("1", () => vm1 = new object()));
            Manager.Register("region", new Module("2", () => vm2 = new object()));

            var t1 = WindowManager.Show("region", "1");
            var t2 = WindowManager.Show("region", "2");

            DispatcherHelper.DoEvents();

            WindowManager.Close("region", "1", MessageBoxResult.OK);
            DispatcherHelper.DoEvents();
            Assert.AreEqual(MessageBoxResult.OK, t1.Result.Result);
            Assert.AreEqual(vm1, t1.Result.ViewModel);

            WindowManager.Close("region", "2", MessageBoxResult.Cancel);
            DispatcherHelper.DoEvents();
            Assert.AreEqual(MessageBoxResult.Cancel, t2.Result.Result);
            Assert.AreEqual(vm2, t2.Result.ViewModel);

            serviceHelper.Dispose();
            Manager.Clear("region");
        }
Exemple #2
0
        public void ClosingWindow()
        {
            UIWindowRegion service = new UIWindowRegion()
            {
                RegionName = "region"
            };

            ModuleManager.DefaultImplementation.GetRegionImplementation("region").RegisterUIRegion(service);
            var serviceHelper = InjectionTestHelper.CreateServiceHelper(service);

            object vm1 = null;
            object vm2 = null;

            Manager.Register("region", new Module("1", () => vm1 = new object()));
            Manager.Register("region", new Module("2", () => vm2 = new object()));

            Manager.Inject("region", "1");
            Manager.Inject("region", "2");
            Manager.Navigate("region", "1");
            DispatcherHelper.DoEvents();
            var    strategy1 = GetStrategy(service, vm1);
            var    strategy2 = GetStrategy(service, vm2);
            Window w1        = (Window)strategy1.Owner.Target;
            Window w2        = (Window)strategy2.Owner.Target;

            Assert.AreEqual(true, w1.IsActive);
            Assert.AreEqual(vm1, service.SelectedViewModel);

            serviceHelper.CancelViewModelRemoving = true;
            w1.Close();
            DispatcherHelper.DoEvents();
            serviceHelper.AssertViewModelRemoving(1);
            serviceHelper.AssertViewModelRemoved(0);
            Assert.AreEqual(true, w1.IsActive);
            Assert.AreEqual(vm1, service.SelectedViewModel);

            Manager.Remove("region", "1");
            DispatcherHelper.DoEvents();
            serviceHelper.AssertViewModelRemoving(2);
            serviceHelper.AssertViewModelRemoved(0);
            Assert.AreEqual(true, w1.IsActive);
            Assert.AreEqual(vm1, service.SelectedViewModel);

            Manager.Remove("region", "1", false);
            DispatcherHelper.DoEvents();
            serviceHelper.AssertViewModelRemoving(2);
            serviceHelper.AssertViewModelRemoved(1);
            Assert.AreEqual(vm2, service.SelectedViewModel);

            Manager.Remove("region", "2", false);
            DispatcherHelper.DoEvents();
            Assert.AreEqual(null, service.SelectedViewModel);

            serviceHelper.Dispose();
            Manager.Clear("region");
        }
Exemple #3
0
        public void DefaultValues()
        {
            UIWindowRegion service = new UIWindowRegion();

            Assert.AreEqual(null, service.RegionName);
            Assert.AreEqual(true, service.SetWindowOwner);
            Assert.AreEqual(WindowShowMode.Default, service.WindowShowMode);
            Assert.AreEqual(WindowStartupLocation.CenterScreen, service.WindowStartupLocation);
            Assert.AreEqual(false, service.IsMainWindow);
        }
Exemple #4
0
        public void ActiveWindow()
        {
            UIWindowRegion service = new UIWindowRegion()
            {
                RegionName = "region"
            };

            ModuleManager.DefaultImplementation.GetRegionImplementation("region").RegisterUIRegion(service);
            var serviceHelper = InjectionTestHelper.CreateServiceHelper(service);

            object vm1 = null;
            object vm2 = null;

            Manager.Register("region", new Module("1", () => vm1 = new object()));
            Manager.Register("region", new Module("2", () => vm2 = new object()));

            Manager.Inject("region", "1");
            Manager.Inject("region", "2");
            DispatcherHelper.DoEvents();
            var    strategy1 = GetStrategy(service, vm1);
            var    strategy2 = GetStrategy(service, vm2);
            Window w1        = (Window)strategy1.Owner.Target;
            Window w2        = (Window)strategy2.Owner.Target;

            Assert.AreEqual(false, w1.IsActive);
            Assert.AreEqual(true, w2.IsActive);
            Assert.AreEqual(vm2, service.SelectedViewModel);
            serviceHelper.AssertSelectionChanged(2);

            w1.Activate();
            DispatcherHelper.DoEvents();
            Assert.AreEqual(true, w1.IsActive);
            Assert.AreEqual(false, w2.IsActive);
            Assert.AreEqual(vm1, service.SelectedViewModel);
            serviceHelper.AssertSelectionChanged(3);

            ((IUIRegion)service).SelectedViewModel = vm2;
            DispatcherHelper.DoEvents();
            Assert.AreEqual(false, w1.IsActive);
            Assert.AreEqual(true, w2.IsActive);
            Assert.AreEqual(vm2, service.SelectedViewModel);
            serviceHelper.AssertSelectionChanged(4);

            Manager.Clear("region");
            DispatcherHelper.DoEvents();
            Assert.AreEqual(false, w1.IsLoaded);
            Assert.AreEqual(false, w2.IsLoaded);
            serviceHelper.Dispose();
        }
Exemple #5
0
        public void InjectWindows()
        {
            UIWindowRegion service = new UIWindowRegion()
            {
                RegionName = "region"
            };

            ModuleManager.DefaultImplementation.GetRegionImplementation("region").RegisterUIRegion(service);
            var serviceHelper = InjectionTestHelper.CreateServiceHelper(service);

            object vm1 = null;
            object vm2 = null;

            Manager.Register("region", new Module("1", () => vm1 = new object()));
            Manager.Register("region", new Module("2", () => vm2 = new object()));

            Manager.Inject("region", "1");
            DispatcherHelper.DoEvents();
            var    strategy1 = GetStrategy(service, vm1);
            Window w1        = (Window)strategy1.Owner.Target;

            Assert.AreEqual(true, w1 is Window);
            Assert.AreEqual(true, w1.IsActive);

            Manager.Inject("region", "2");
            DispatcherHelper.DoEvents();
            var    strategy2 = GetStrategy(service, vm2);
            Window w2        = (Window)strategy2.Owner.Target;

            Assert.AreEqual(false, w1.IsActive);
            Assert.AreEqual(true, w2.IsActive);

            w1.Close();
            DispatcherHelper.DoEvents();
            Assert.AreEqual(null, Manager.GetRegion("region").GetViewModel("1"));
            serviceHelper.AssertViewModelRemoving(1);
            serviceHelper.AssertViewModelRemoved(1);

            Manager.Remove("region", "2");
            DispatcherHelper.DoEvents();
            Assert.AreEqual(false, w2.IsVisible);
            serviceHelper.AssertViewModelRemoving(2);
            serviceHelper.AssertViewModelRemoved(2);
            serviceHelper.Dispose();
        }