public void CanAttachBeforeSettingName()
        {
            var region = new MockPresentationRegion()
            {
                Name = null
            };
            var viewFactory = new MockRegionContentRegistry();
            var view        = new object();

            viewFactory.GetContentsReturnValue.Add(view);
            var behavior = new AutoPopulateRegionBehavior(viewFactory)
            {
                Region = region
            };

            behavior.Attach();
            Assert.IsFalse(viewFactory.GetContentsCalled);

            region.Name = "MyRegion";

            Assert.IsTrue(viewFactory.GetContentsCalled);
            Assert.AreEqual("MyRegion", viewFactory.GetContentsArgumentRegionName);
            Assert.AreEqual(1, region.MockViews.Items.Count);
            Assert.AreEqual(view, region.MockViews.Items[0]);
        }
Example #2
0
        /// <summary>
        /// Initializes a new instance of <see cref="VisualizingRegionManagerRegistrationBehavior"/>.
        /// </summary>
        public VisualizingRegionManagerRegistrationBehavior(VisualizingRegion visualizingRegion
                                                            , AutoPopulateRegionBehavior autoPopulateRegionBehavior)
        {
            this.visualizingRegion          = visualizingRegion;
            this.autoPopulateRegionBehavior = autoPopulateRegionBehavior;

            this.RegionManagerAccessor = new DefaultRegionManagerAccessor();
        }
        public void NullRegionThrows()
        {
            var ex = Assert.Throws <InvalidOperationException>(() =>
            {
                var behavior = new AutoPopulateRegionBehavior(new MockRegionContentRegistry());

                behavior.Attach();
            });
        }
        private MockServiceLocator GetServiceLocator(string[] defaultRegions)
        {
            MockServiceLocator locator = new MockServiceLocator();
            var regionViewRegistry     = new RegionViewRegistry(locator);
            var behavior = new AutoPopulateRegionBehavior(regionViewRegistry);
            var regionBehaviorFactory = new RegionBehaviorFactory(locator);

            regionBehaviorFactory.AddIfMissing(AutoPopulateRegionBehavior.BehaviorKey, typeof(AutoPopulateRegionBehavior));
            var regionManager = new RegionManager(regionBehaviorFactory);

            locator.GetInstance = (type) =>
            {
                if (type == typeof(IRegionManager))
                {
                    return(regionManager);
                }
                if (type == typeof(IRegionViewRegistry))
                {
                    return(regionViewRegistry);
                }
                if (type == typeof(AutoPopulateRegionBehavior))
                {
                    return(behavior);
                }
                if (type == typeof(IRegionBehaviorFactory))
                {
                    return(regionBehaviorFactory);
                }
                if (type == typeof(IServiceLocator))
                {
                    return(locator);
                }
                if (type == typeof(MockView))
                {
                    return(new MockView());
                }
                if (type == typeof(object))
                {
                    return(new object());
                }
                return(null);
            };

            foreach (var region in defaultRegions)
            {
                regionManager.Regions.Add(new MockRegion {
                    Name = region
                });
            }

            return(locator);
        }
        public void ShouldGetViewsFromRegistryWhenRegisteringItAfterAttach()
        {
            var region = new MockPresentationRegion()
            {
                Name = "MyRegion"
            };
            var viewFactory = new MockRegionContentRegistry();
            var behavior    = new AutoPopulateRegionBehavior(viewFactory)
            {
                Region = region
            };
            var view = new object();

            behavior.Attach();
            viewFactory.GetContentsReturnValue.Add(view);
            viewFactory.RaiseContentRegistered("MyRegion", view);

            Assert.AreEqual("MyRegion", viewFactory.GetContentsArgumentRegionName);
            Assert.AreEqual(1, region.MockViews.Items.Count);
            Assert.AreEqual(view, region.MockViews.Items[0]);
        }
        public void ShouldGetViewsFromRegistryOnAttach()
        {
            var region = new MockPresentationRegion()
            {
                Name = "MyRegion"
            };
            var viewFactory = new MockRegionContentRegistry();
            var view        = new object();

            viewFactory.GetContentsReturnValue.Add(view);
            var behavior = new AutoPopulateRegionBehavior(viewFactory)
            {
                Region = region
            };

            behavior.Attach();

            Assert.Equal("MyRegion", viewFactory.GetContentsArgumentRegionName);
            Assert.Single(region.MockViews.Items);
            Assert.Equal(view, region.MockViews.Items[0]);
        }
        public void NullRegionThrows()
        {
            var behavior = new AutoPopulateRegionBehavior(new MockRegionContentRegistry());

            behavior.Attach();
        }