/// <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 ShouldGetViewsFromRegistryOnAttach()
        {
            var region = new MockRegion() { Name = "MyRegion" };
            var viewFactory = new MockRegionContentRegistry();
            var view = new object();
            viewFactory.GetContentsReturnValue.Add(view);
            var behavior = new AutoPopulateRegionBehavior(viewFactory)
                               {
                                   Region = region
                               };

            behavior.Attach();

            Assert.AreEqual("MyRegion", viewFactory.GetContentsArgumentRegionName);
            Assert.AreEqual(1, region.MockViews.Items.Count);
            Assert.AreEqual(view, region.MockViews.Items[0]);
        }
        public void CanAttachBeforeSettingName()
        {
            var region = new MockRegion() { 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]);
        }
        public void NullRegionThrows()
        {
            var behavior = new AutoPopulateRegionBehavior(new MockRegionContentRegistry());

            behavior.Attach();
        }