public void SetsIsActivePropertyOnBothIActiveAwareViewAndDataContext() { var region = new MockPresentationRegion(); var behavior = new RegionActiveAwareBehavior { Region = region }; behavior.Attach(); var collection = region.MockActiveViews.Items; var activeAwareMock = new Mock <IActiveAware>(); activeAwareMock.SetupProperty(o => o.IsActive); var activeAwareObject = activeAwareMock.Object; var frameworkElementMock = new Mock <FrameworkElement>(); frameworkElementMock.As <IActiveAware>().SetupProperty(o => o.IsActive); var frameworkElement = frameworkElementMock.Object; frameworkElement.DataContext = activeAwareObject; Assert.IsFalse(((IActiveAware)frameworkElement).IsActive); Assert.IsFalse(activeAwareObject.IsActive); collection.Add(frameworkElement); Assert.IsTrue(((IActiveAware)frameworkElement).IsActive); Assert.IsTrue(activeAwareObject.IsActive); collection.Remove(frameworkElement); Assert.IsFalse(((IActiveAware)frameworkElement).IsActive); Assert.IsFalse(activeAwareObject.IsActive); }
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 CanAttachBeforeSettingName() { var control = new ItemsControl(); var regionManager = new MockRegionManager(); var accessor = new MockRegionManagerAccessor { GetRegionManager = d => regionManager }; var region = new MockPresentationRegion() { Name = null }; var behavior = new RegionManagerRegistrationBehavior() { RegionManagerAccessor = accessor, Region = region, HostControl = control }; behavior.Attach(); Assert.IsFalse(regionManager.MockRegionCollection.AddCalled); region.Name = "myRegionName"; Assert.IsTrue(regionManager.MockRegionCollection.AddCalled); Assert.AreSame(region, regionManager.MockRegionCollection.AddArgument); }
public void SetsIsActivePropertyOnIActiveAwareDataContexts() { var region = new MockPresentationRegion(); var behavior = new RegionActiveAwareBehavior { Region = region }; behavior.Attach(); var collection = region.MockActiveViews.Items; ActiveAwareObject activeAwareObject = new ActiveAwareObject(); var frameworkElementMock = new Mock <FrameworkElement>(); var frameworkElement = frameworkElementMock.Object; frameworkElement.DataContext = activeAwareObject; Assert.IsFalse(activeAwareObject.IsActive); collection.Add(frameworkElement); Assert.IsTrue(activeAwareObject.IsActive); collection.Remove(frameworkElement); Assert.IsFalse(activeAwareObject.IsActive); }
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]); }
public void AttachShouldNotThrowWhenHostControlNull() { MockPresentationRegion region = new MockPresentationRegion(); SyncRegionContextWithHostBehavior behavior = new SyncRegionContextWithHostBehavior(); behavior.Region = region; behavior.Attach(); }
public void AddPassesItselfAsTheRegionManagerOfTheRegion() { var regionManager = new RegionManager(); var region = new MockPresentationRegion(); region.Name = "region"; regionManager.Regions.Add(region); Assert.AreSame(regionManager, region.RegionManager); }
public void ViewInRegionCanBeObject() { var behavior = new BindRegionContextToDependencyObjectBehavior(); var region = new MockPresentationRegion(); behavior.Region = region; behavior.Attach(); region.Add(new object()); region.Context = "new context"; }
public void ShouldAddRegionWhenAddingBehavior() { var region = new MockPresentationRegion(); RegionBehaviorCollection behaviorCollection = new RegionBehaviorCollection(region); var behavior = new MockRegionBehavior(); behaviorCollection.Add("Mock", behavior); Assert.IsNotNull(behavior.Region); Assert.AreSame(region, behavior.Region); }
public void DoesNotThrowWhenAddingNonActiveAwareObjects() { var region = new MockPresentationRegion(); var behavior = new RegionActiveAwareBehavior { Region = region }; behavior.Attach(); var collection = region.MockActiveViews.Items; collection.Add(new object()); }
public void CanRemoveRegion() { var regionManager = new RegionManager(); IRegion region = new MockPresentationRegion(); region.Name = "TestRegion"; regionManager.Regions.Add(region); regionManager.Regions.Remove("TestRegion"); Assert.IsFalse(regionManager.Regions.ContainsRegionWithName("TestRegion")); }
public void AddRegionShouldHaveDefaultBehavior() { IRegion region1 = new MockPresentationRegion(); region1.Name = "MainRegion"; var regionManager = new RegionManager(CreateMockRegionBehaviorFactory()); regionManager.Regions.Add(region1); Assert.AreEqual(1, region1.Behaviors.Count()); Assert.IsInstanceOfType(region1.Behaviors[MockRegionBehavior.BehaviorKey], typeof(MockRegionBehavior)); }
public void ShouldRemoveRegionManagerWhenRemoving() { var regionManager = new RegionManager(); var region = new MockPresentationRegion(); region.Name = "TestRegion"; regionManager.Regions.Add(region); regionManager.Regions.Remove("TestRegion"); Assert.IsNull(region.RegionManager); }
public void AddedItemShouldBeActivated() { var control = new ContentControl(); IRegionAdapter adapter = new TestableContentControlRegionAdapter(); MockPresentationRegion region = (MockPresentationRegion)adapter.Initialize(control, "Region1"); var mockView = new object(); region.Add(mockView); Assert.AreEqual(1, region.ActiveViews.Count()); Assert.IsTrue(region.ActiveViews.Contains(mockView)); }
public void CanRemoveViewWhenNoneActive() { var control = new ContentControl(); IRegionAdapter adapter = new TestableContentControlRegionAdapter(); MockPresentationRegion region = (MockPresentationRegion)adapter.Initialize(control, "Region1"); var mockView1 = new object(); region.Add(mockView1); region.Deactivate(mockView1); region.Remove(mockView1); Assert.AreEqual(0, region.ActiveViews.Count()); }
public void CanAddRegion() { IRegion region1 = new MockPresentationRegion(); region1.Name = "MainRegion"; RegionManager regionManager = new RegionManager(); regionManager.Regions.Add(region1); IRegion region2 = regionManager.Regions["MainRegion"]; Assert.AreSame(region1, region2); }
public void AddedItemShouldBeActivated() { var control = new ContentView(); IRegionAdapter adapter = new TestableContentControlRegionAdapter(); MockPresentationRegion region = (MockPresentationRegion)adapter.Initialize(control, "Region1"); var mockView = new StackLayout(); region.Add(mockView); Assert.Single(region.ActiveViews); Assert.True(region.ActiveViews.Contains(mockView)); }
public void CanRemoveViewWhenNoneActive() { var control = new ContentView(); IRegionAdapter adapter = new TestableContentControlRegionAdapter(); MockPresentationRegion region = (MockPresentationRegion)adapter.Initialize(control, "Region1"); var mockView1 = new StackLayout(); region.Add(mockView1); region.Deactivate(mockView1); region.Remove(mockView1); Assert.Empty(region.ActiveViews); }
public void CanAddRegion() { IRegion region1 = new MockPresentationRegion(); region1.Name = "MainRegion"; var regionManager = new RegionManager(CreateMockRegionBehaviorFactory()); regionManager.Regions.Add(region1); IRegion region2 = regionManager.Regions["MainRegion"]; Assert.AreSame(region1, region2); }
public void ShouldNotActivateAdditionalViewsAdded() { var control = new ContentControl(); IRegionAdapter adapter = new TestableContentControlRegionAdapter(); MockPresentationRegion region = (MockPresentationRegion)adapter.Initialize(control, "Region1"); var mockView = new object(); region.Add(mockView); region.Add(new object()); Assert.Single(region.ActiveViews); Assert.True(region.ActiveViews.Contains(mockView)); }
public void CanCheckTheExistenceOfARegion() { RegionManager regionManager = new RegionManager(); bool result = regionManager.Regions.ContainsRegionWithName("noRegion"); Assert.IsFalse(result); IRegion region = new MockPresentationRegion(); region.Name = "noRegion"; regionManager.Regions.Add(region); result = regionManager.Regions.ContainsRegionWithName("noRegion"); Assert.IsTrue(result); }
public void ShouldSetObservableRegionContextWhenRegionContextChanges() { var region = new MockPresentationRegion(); var view = new MockDependencyObject(); var observableObject = RegionContext.GetObservableContext(view); bool propertyChangedCalled = false; observableObject.PropertyChanged += (sender, args) => propertyChangedCalled = true; Assert.IsNull(observableObject.Value); RegionManager.SetRegionContext(view, "MyContext"); Assert.IsTrue(propertyChangedCalled); Assert.AreEqual("MyContext", observableObject.Value); }
public void DetachStopsListeningForChanges() { var region = new MockPresentationRegion(); var behavior = new RegionActiveAwareBehavior { Region = region }; var collection = region.MockActiveViews.Items; behavior.Attach(); behavior.Detach(); ActiveAwareObject activeAwareObject = new ActiveAwareObject(); collection.Add(activeAwareObject); Assert.IsFalse(activeAwareObject.IsActive); }
public void AttachShouldChangeRegionContextDependencyProperty() { MockPresentationRegion region = new MockPresentationRegion(); SyncRegionContextWithHostBehavior behavior = new SyncRegionContextWithHostBehavior(); behavior.Region = region; DependencyObject hostControl = new MockDependencyObject(); behavior.HostControl = hostControl; RegionContext.GetObservableContext(hostControl).Value = "NewValue"; Assert.IsNull(RegionManager.GetRegionContext(hostControl)); behavior.Attach(); Assert.AreEqual("NewValue", RegionManager.GetRegionContext(hostControl)); }
public void ShouldSetRegionContextOnAlreadyAddedViews() { var behavior = new BindRegionContextToDependencyObjectBehavior(); var region = new MockPresentationRegion(); var view = new MockDependencyObject(); region.Add(view); behavior.Region = region; region.Context = "MyContext"; behavior.Attach(); var context = RegionContext.GetObservableContext(view); Assert.IsNotNull(context.Value); Assert.AreEqual("MyContext", context.Value); }
public void ShouldSetRegionContextOnContextChange() { var behavior = new BindRegionContextToDependencyObjectBehavior(); var region = new MockPresentationRegion(); var view = new MockDependencyObject(); region.Add(view); behavior.Region = region; region.Context = "MyContext"; behavior.Attach(); Assert.AreEqual("MyContext", RegionContext.GetObservableContext(view).Value); region.Context = "MyNewContext"; region.OnPropertyChange("Context"); Assert.AreEqual("MyNewContext", RegionContext.GetObservableContext(view).Value); }
public void ShouldForwardRegionContextValueToHostControl() { MockPresentationRegion region = new MockPresentationRegion(); SyncRegionContextWithHostBehavior behavior = new SyncRegionContextWithHostBehavior(); behavior.Region = region; Visual mockDependencyObject = new MockDependencyObject(); behavior.HostControl = mockDependencyObject; behavior.Attach(); Assert.IsNull(region.Context); RegionContext.GetObservableContext(mockDependencyObject).Value = "NewValue"; Assert.AreEqual("NewValue", region.Context); }
public void WhenAViewIsRemovedFromARegion_ThenRegionContextIsNotClearedInRegion() { var behavior = new BindRegionContextToDependencyObjectBehavior(); var region = new MockPresentationRegion(); behavior.Region = region; behavior.Attach(); var myView = new MockFrameworkElement(); region.Add(myView); region.Context = "new context"; region.Remove(myView); Assert.IsNotNull(region.Context); }
public void ShouldGetInitialValueFromHostAndSetOnRegion() { MockPresentationRegion region = new MockPresentationRegion(); SyncRegionContextWithHostBehavior behavior = new SyncRegionContextWithHostBehavior(); behavior.Region = region; DependencyObject mockDependencyObject = new MockDependencyObject(); behavior.HostControl = mockDependencyObject; RegionContext.GetObservableContext(mockDependencyObject).Value = "NewValue"; Assert.IsNull(region.Context); behavior.Attach(); Assert.AreEqual("NewValue", region.Context); }
public void ShouldRemoveContextToViewRemovedFromRegion() { var behavior = new BindRegionContextToDependencyObjectBehavior(); var region = new MockPresentationRegion(); var view = new MockDependencyObject(); region.Add(view); behavior.Region = region; region.Context = "MyContext"; behavior.Attach(); region.Remove(view); var context = RegionContext.GetObservableContext(view); Assert.IsNull(context.Value); }