public void RegionGetsRemovedFromRegionManagerWhenRemovedFromScope() { var regionManager = new MockRegionManager(); var control = new MockFrameworkElement(); var regionScopeControl = new ContentControl(); var accessor = new MockRegionManagerAccessor { GetRegionManager = d => d == regionScopeControl ? regionManager : null }; var region = new MockPresentationRegion() { Name = "myRegionName" }; var behavior = new RegionManagerRegistrationBehavior() { RegionManagerAccessor = accessor, Region = region, HostControl = control }; behavior.Attach(); regionScopeControl.Content = control; accessor.UpdateRegions(); Assert.IsTrue(regionManager.MockRegionCollection.AddCalled); Assert.AreSame(region, regionManager.MockRegionCollection.AddArgument); regionScopeControl.Content = null; accessor.UpdateRegions(); Assert.IsTrue(regionManager.MockRegionCollection.RemoveCalled); }
public void HostControlSetAfterAttachThrows() { var behavior = new RegionManagerRegistrationBehavior(); var hostControl1 = new MockDependencyObject(); var hostControl2 = new MockDependencyObject(); behavior.HostControl = hostControl1; behavior.Attach(); behavior.HostControl = hostControl2; }
public void HostControlSetAfterAttachThrows() { var ex = Assert.Throws <InvalidOperationException>(() => { var behavior = new RegionManagerRegistrationBehavior(); var hostControl1 = new MockDependencyObject(); var hostControl2 = new MockDependencyObject(); behavior.HostControl = hostControl1; behavior.Attach(); behavior.HostControl = hostControl2; }); }
public void DoesNotFailIfRegionManagerIsNotSet() { var control = new ItemsControl(); var accessor = new MockRegionManagerAccessor(); var behavior = new RegionManagerRegistrationBehavior() { RegionManagerAccessor = accessor, Region = new MockPresentationRegion() { Name = "myRegionWithoutManager" }, HostControl = control }; behavior.Attach(); }
public void ShouldRegisterRegionIfRegionManagerIsSet() { var control = new ItemsControl(); var regionManager = new MockRegionManager(); var accessor = new MockRegionManagerAccessor { GetRegionManager = d => regionManager }; var region = new MockPresentationRegion() { Name = "myRegionName" }; var behavior = new RegionManagerRegistrationBehavior() { RegionManagerAccessor = accessor, Region = region, HostControl = control }; behavior.Attach(); Assert.IsTrue(regionManager.MockRegionCollection.AddCalled); Assert.AreSame(region, regionManager.MockRegionCollection.AddArgument); }
public static DependencyObject GetAttachedControl(this IRegion region) { RegionManagerRegistrationBehavior behavior = (RegionManagerRegistrationBehavior)region.Behaviors.First(b => b.Key == RegionManagerRegistrationBehavior.BehaviorKey).Value; return(behavior.HostControl); }