public void HostControlThatsNotTabControlThrows() { var control = new MockDependencyObject(); IRegionAdapter adapter = new TabControlRegionAdapter(null); var region = adapter.Initialize(control, "region"); }
public void SettingHostControlAfterAttachThrows() { SyncRegionContextWithHostBehavior behavior = new SyncRegionContextWithHostBehavior(); DependencyObject hostControl1 = new MockDependencyObject(); behavior.HostControl = hostControl1; behavior.Attach(); DependencyObject hostControl2 = new MockDependencyObject(); behavior.HostControl = hostControl2; }
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 AddViewPassesSameScopeByDefaultToNamedView() { var regionManager = new MockRegionManager(); IRegion region = new Region(); region.RegionManager = regionManager; var myView = new MockDependencyObject(); region.Add(myView, "MyView"); Assert.Same(regionManager, myView.GetValue(RegionManager.RegionManagerProperty)); }
public void AddViewPassesDiferentScopeWhenAdding() { var regionManager = new MockRegionManager(); IRegion region = new Region(); region.RegionManager = regionManager; var myView = new MockDependencyObject(); region.Add(myView, "MyView", true); Assert.NotSame(regionManager, myView.GetValue(RegionManager.RegionManagerProperty)); }
public void SettingHostControlAfterAttachThrows() { var ex = Assert.Throws <InvalidOperationException>(() => { SyncRegionContextWithHostBehavior behavior = new SyncRegionContextWithHostBehavior(); DependencyObject hostControl1 = new MockDependencyObject(); behavior.HostControl = hostControl1; behavior.Attach(); DependencyObject hostControl2 = new MockDependencyObject(); behavior.HostControl = hostControl2; }); }
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 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); }
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 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 ShouldForwardRegionContextValueToHostControl() { MockRegion region = new MockRegion(); SyncRegionContextWithHostBehavior behavior = new SyncRegionContextWithHostBehavior(); behavior.Region = region; DependencyObject mockDependencyObject = new MockDependencyObject(); behavior.HostControl = mockDependencyObject; behavior.Attach(); Assert.IsNull(region.Context); RegionContext.GetObservableContext(mockDependencyObject).Value = "NewValue"; Assert.AreEqual("NewValue", region.Context); }
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 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 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 async Task ShouldGetInitialValueFromHostAndSetOnRegion() { await ExecuteOnUIThread(() => { MockPresentationRegion region = new MockPresentationRegion(); SyncRegionContextWithHostBehavior behavior = new SyncRegionContextWithHostBehavior() { 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 ShouldCreateWindowOnViewActivation() { var parentWindow = new MockDependencyObject(); var region = new MockRegion(); var view = new UserControl(); var behavior = new TestableDialogActivationBehavior(); behavior.HostControl = parentWindow; behavior.Region = region; behavior.Attach(); region.MockActiveViews.TriggerNotifyCollectionChangedEvent(NotifyCollectionChangedAction.Add, view); Assert.IsNotNull(behavior.CreatedWindow); Assert.IsTrue(behavior.CreatedWindow.ShowCalled); Assert.AreSame(view, behavior.CreatedWindow.Content); Assert.AreSame(parentWindow, behavior.CreatedWindow.Owner); }
public void ShouldUpdateHostControlRegionContextValueWhenContextOfRegionChanges() { MockPresentationRegion region = new MockPresentationRegion(); SyncRegionContextWithHostBehavior behavior = new SyncRegionContextWithHostBehavior(); behavior.Region = region; DependencyObject mockDependencyObject = new MockDependencyObject(); behavior.HostControl = mockDependencyObject; ObservableObject<object> observableRegionContext = RegionContext.GetObservableContext(mockDependencyObject); behavior.Attach(); Assert.IsNull(observableRegionContext.Value); region.Context = "NewValue"; Assert.AreEqual("NewValue", observableRegionContext.Value); }
public async Task ShouldSetRegionContextOnAddedView() { await ExecuteOnUIThread(() => { var behavior = new BindRegionContextToDependencyObjectBehavior(); var region = new MockPresentationRegion(); behavior.Region = region; region.Context = "MyContext"; var view = new MockDependencyObject(); behavior.Attach(); region.Add(view); var context = RegionContext.GetObservableContext(view); Assert.IsNotNull(context.Value); Assert.AreEqual("MyContext", context.Value); }); }
public void ShouldUpdateHostControlRegionContextValueWhenContextOfRegionChanges() { MockPresentationRegion region = new MockPresentationRegion(); SyncRegionContextWithHostBehavior behavior = new SyncRegionContextWithHostBehavior(); behavior.Region = region; DependencyObject mockDependencyObject = new MockDependencyObject(); behavior.HostControl = mockDependencyObject; ObservableObject <object> observableRegionContext = RegionContext.GetObservableContext(mockDependencyObject); behavior.Attach(); Assert.IsNull(observableRegionContext.Value); region.Context = "NewValue"; Assert.AreEqual("NewValue", observableRegionContext.Value); }
public void ShouldSetStyleToRegionWindow() { var parentWindow = new MockDependencyObject(); var region = new MockRegion(); var behavior = new TestableDialogActivationBehavior(); behavior.HostControl = parentWindow; behavior.Region = region; var regionStyle = new Style(); parentWindow.SetValue(RegionPopupBehaviors.ContainerWindowStyleProperty, regionStyle); behavior.Attach(); var view = new UserControl(); region.MockActiveViews.TriggerNotifyCollectionChangedEvent(NotifyCollectionChangedAction.Add, view); Assert.AreEqual(regionStyle, behavior.CreatedWindow.Style); }
public void TestDependantProviderDependency() { Locator locator = new Locator(); LifetimeContainer container = new LifetimeContainer(); locator.Add(typeof(ILifetimeContainer), container); TestableRootCompositionContainer compositionContainer = new TestableRootCompositionContainer(); locator.Add(new DependencyResolutionLocatorKey(typeof(CompositionContainer), null), compositionContainer); MockDependencyObject mockDependency = compositionContainer.Services.AddNew <MockDependencyObject, MockDependencyObject>(); WCSFBuilder builder = new WCSFBuilder(); TestDependentProviderHost.Provider = new MockDependentProvider(); TestDependentParameterDependency obj = builder.BuildUp <TestDependentParameterDependency>(locator, "foo", null); Assert.IsNotNull(obj.Provider); Assert.AreSame(TestDependentProviderHost.Provider, obj.Provider); Assert.IsNotNull(TestDependentProviderHost.Provider.DependencyObject); Assert.AreSame(mockDependency, TestDependentProviderHost.Provider.DependencyObject); }
public async Task ChangingRegionContextObservableObjectValueShouldAlsoChangeRegionContextDependencyProperty() { await ExecuteOnUIThread(() => { MockPresentationRegion region = new MockPresentationRegion(); SyncRegionContextWithHostBehavior behavior = new SyncRegionContextWithHostBehavior() { Region = region }; DependencyObject hostControl = new MockDependencyObject(); behavior.HostControl = hostControl; behavior.Attach(); Assert.IsNull(RegionManager.GetRegionContext(hostControl)); RegionContext.GetObservableContext(hostControl).Value = "NewValue"; Assert.AreEqual("NewValue", RegionManager.GetRegionContext(hostControl)); }); }
public void AddViewPassesDiferentScopeWhenAdding() { var regionManager = new MockRegionManager(); IRegion region = new Region(); region.RegionManager = regionManager; var myView = new MockDependencyObject(); region.Add(myView, "MyView", true); Assert.AreNotSame(regionManager, myView.GetValue(RegionManager.RegionManagerProperty)); }
public void AddViewPassesSameScopeByDefaultToNamedView() { var regionManager = new MockRegionManager(); IRegion region = new Region(); region.RegionManager = regionManager; var myView = new MockDependencyObject(); region.Add(myView, "MyView"); Assert.AreSame(regionManager, myView.GetValue(RegionManager.RegionManagerProperty)); }
public async Task ShouldSetObservableRegionContextWhenRegionContextChanges() { await ExecuteOnUIThread(() => { 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 ShouldSetObservableRegionContextWhenRegionContextChanges() { var region = new MockRegion(); 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 async Task SettingHostControlAfterAttachThrows() { await ExecuteOnUIThread(() => { SyncRegionContextWithHostBehavior behavior = new SyncRegionContextWithHostBehavior(); DependencyObject hostControl1 = new MockDependencyObject(); behavior.HostControl = hostControl1; behavior.Attach(); DependencyObject hostControl2 = new MockDependencyObject(); Assert.ThrowsException<InvalidOperationException>(() => behavior.HostControl = hostControl2); }); }
public void TestAddRemove() { IDependencyGraph <MockDependencyObject> graph = new DependencyGraph <MockDependencyObject>(); MockDependencyObject a = new("a"); MockDependencyObject b = new("b", a); MockDependencyObject c = new("c"); MockDependencyObject d = new("d"); c.Dependencies.Add(d); Assert.ThrowsException <ArgumentNullException>(() => { graph.IsUsed(null); }); Assert.ThrowsException <ArgumentException>(() => { graph.IsUsed(a); }); Assert.ThrowsException <ArgumentNullException>(() => { graph.AddObject(a, null); }); Assert.ThrowsException <ArgumentNullException>(() => { graph.AddObject(null, a.Dependencies); }); graph.AddObject(a, a.Dependencies); Assert.IsFalse(graph.IsUsed(a)); Assert.IsTrue(graph.DependentList.Count == 1 && graph.DependentList[0] == a); Assert.ThrowsException <ArgumentException>(() => { graph.AddObject(a, a.Dependencies); }); graph.AddObject(b, b.Dependencies); Assert.IsTrue(graph.IsUsed(a)); Assert.IsFalse(graph.IsUsed(b)); CollectionAssert.AreEqual(graph.DependingList.ToArray(), new[] { a, b }); CollectionAssert.AreEqual(graph.DependentList.ToArray(), new[] { b, a }); Assert.ThrowsException <DependencyException>(() => { graph.AddObject(c, c.Dependencies); }); Assert.ThrowsException <ArgumentNullException>(() => { graph.RemoveObject(null); }); Assert.ThrowsException <ArgumentException>(() => { graph.RemoveObject(d); }); Assert.ThrowsException <DependencyException>(() => { graph.RemoveObject(a); }); graph.RemoveObject(b); Assert.ThrowsException <ArgumentException>(() => { graph.IsUsed(b); }); Assert.IsFalse(graph.IsUsed(a)); graph.RemoveObject(a); Assert.IsTrue(graph.DependentList.Count == 0); c = new MockDependencyObject("c", a); d = new MockDependencyObject("d", a, c); var e = new MockDependencyObject("e", a, d); var f = new MockDependencyObject("f", e, b); var g = new MockDependencyObject("g", c); var h = new MockDependencyObject("h", b, a); var i = new MockDependencyObject("i", a, d, e, f); var j = new MockDependencyObject("j", a); var k = new MockDependencyObject("k"); Dictionary <MockDependencyObject, MockDependencyObject[]> dependingDic = new(); dependingDic.Add(a, Array.Empty <MockDependencyObject>()); dependingDic.Add(b, new[] { a }); dependingDic.Add(c, new[] { a }); dependingDic.Add(d, new[] { a, c }); dependingDic.Add(e, new[] { a, d, c }); dependingDic.Add(f, new[] { a, b, c, e, d }); dependingDic.Add(g, new[] { c, a }); dependingDic.Add(h, new[] { a, b }); dependingDic.Add(i, new[] { a, c, d, e, b, f }); dependingDic.Add(j, new[] { a }); dependingDic.Add(k, Array.Empty <MockDependencyObject>()); Dictionary <MockDependencyObject, MockDependencyObject[]> dependentDic = new(); dependentDic.Add(a, new[] { b, c, d, e, f, g, h, i, j }); dependentDic.Add(b, new[] { h, f, i }); dependentDic.Add(c, new[] { g, e, d, f, i }); dependentDic.Add(d, new[] { e, f, i }); dependentDic.Add(e, new[] { f, i }); dependentDic.Add(f, new[] { i }); dependentDic.Add(g, Array.Empty <MockDependencyObject>()); dependentDic.Add(h, Array.Empty <MockDependencyObject>()); dependentDic.Add(i, Array.Empty <MockDependencyObject>()); dependentDic.Add(j, Array.Empty <MockDependencyObject>()); dependentDic.Add(k, Array.Empty <MockDependencyObject>()); graph.AddObject(a, a.Dependencies); graph.AddObject(b, b.Dependencies); graph.AddObject(c, c.Dependencies); Assert.ThrowsException <DependencyException>(() => { graph.AddObject(e, e.Dependencies); }); graph.AddObject(d, d.Dependencies); graph.AddObject(e, e.Dependencies); graph.AddObject(f, f.Dependencies); graph.AddObject(g, g.Dependencies); graph.AddObject(h, h.Dependencies); graph.AddObject(i, i.Dependencies); graph.AddObject(j, j.Dependencies); graph.AddObject(k, k.Dependencies); AssertDependingOrder(graph.DependingList); AssertDependentOrder(graph.DependentList); var all = new[] { a, b, c, d, e, f, g, h, i, j, k }; CollectionAssert.AreEquivalent(all, graph.DependentList.ToArray()); CollectionAssert.AreEquivalent(graph.DependingList.ToArray(), graph.DependentList.ToArray()); foreach (var obj in all) { var dependencies = graph.GetDependencies(obj); var exp = dependingDic[obj]; CollectionAssert.AreEquivalent(exp, dependencies, $"failed for {obj.Name}, expected: {ToString(exp)}, actual: {ToString(dependencies.ToArray())}"); AssertDependingOrder(dependencies); exp = dependentDic[obj]; var dependents = graph.GetDependents(obj); CollectionAssert.AreEquivalent(exp, dependents, $"failed for {obj.Name}, expected: {ToString(exp)}, actual: {ToString(dependents.ToArray())}"); AssertDependentOrder(dependents); } }