public async Task AdapterDoesNotPreventRegionFromBeingGarbageCollected() { await ExecuteOnUIThread(() => { var selector = new ListBox(); object model = new object(); IRegionAdapter adapter = new SelectorRegionAdapter(null); var region = adapter.Initialize(selector, "Region1"); region.Add(model); WeakReference regionWeakReference = new WeakReference(region); WeakReference controlWeakReference = new WeakReference(selector); Assert.IsTrue(regionWeakReference.IsAlive); Assert.IsTrue(controlWeakReference.IsAlive); region = null; selector = null; GC.Collect(); GC.Collect(); Assert.IsFalse(regionWeakReference.IsAlive); Assert.IsFalse(controlWeakReference.IsAlive); }); }
public void DeactivatingTheSelectedViewShouldUpdateTheSelectedItem() { var selector = new ListBox(); var view1 = new object(); IRegionAdapter adapter = new SelectorRegionAdapter(null); var region = adapter.Initialize(selector, "Region1"); region.Add(view1); region.Activate(view1); Assert.AreEqual(view1, selector.SelectedItem); region.Deactivate(view1); Assert.AreNotEqual(view1, selector.SelectedItem); }
public void DeactivatingTheSelectedViewShouldUpdateTheSelectedItem() { var selector = new ListBox(); var view1 = new object(); IRegionAdapter adapter = new SelectorRegionAdapter(null); var region = adapter.Initialize(selector, "Region1"); region.Add(view1); region.Activate(view1); Assert.Equal(view1, selector.SelectedItem); region.Deactivate(view1); Assert.NotEqual(view1, selector.SelectedItem); }
public void DeactivatingTheSelectedViewShouldUpdateTheSelectedItem() { TabControl tabControl = new TabControl(); var view1 = new object(); IRegionAdapter adapter = new SelectorRegionAdapter(); var region = adapter.Initialize(tabControl); region.Add(view1); region.Activate(view1); Assert.AreEqual(view1, tabControl.SelectedItem); region.Deactivate(view1); Assert.AreNotEqual(view1, tabControl.SelectedItem); }
public void RegionDoesNotGetUpdatedIfTheItemsSourceWasManuallyChanged() { TabControl tabControl = new TabControl(); object model = new object(); IRegionAdapter adapter = new SelectorRegionAdapter(); var region = adapter.Initialize(tabControl); region.Add(model); tabControl.ItemsSource = null; tabControl.Items.Add(model); Assert.IsFalse(region.ActiveViews.Contains(model)); tabControl.SelectedItem = model; Assert.IsFalse(region.ActiveViews.Contains(model), "The region should not be updated"); }
public void AdapterDoesNotPreventControlFromBeingGarbageCollectedWhenSettingItemsSourceToNull() { TabControl tabControl = new TabControl(); object model = new object(); IRegionAdapter adapter = new SelectorRegionAdapter(); var region = adapter.Initialize(tabControl); region.Add(model); WeakReference controlWeakReference = new WeakReference(tabControl); Assert.IsTrue(controlWeakReference.IsAlive); tabControl.ItemsSource = null; tabControl = null; GC.Collect(); GC.Collect(); Assert.IsFalse(controlWeakReference.IsAlive); }
public void AdapterDoesNotPreventRegionFromBeingGarbageCollected() { var selector = new ListBox(); object model = new object(); IRegionAdapter adapter = new SelectorRegionAdapter(null); var region = adapter.Initialize(selector, "Region1"); region.Add(model); WeakReference regionWeakReference = new WeakReference(region); WeakReference controlWeakReference = new WeakReference(selector); Assert.True(regionWeakReference.IsAlive); Assert.True(controlWeakReference.IsAlive); region = null; selector = null; GC.Collect(); GC.Collect(); Assert.False(regionWeakReference.IsAlive); Assert.False(controlWeakReference.IsAlive); }
public void AdapterSynchronizesSelectorSelectionWithRegion() { TabControl tabControl = new TabControl(); object model1 = new object(); object model2 = new object(); IRegionAdapter adapter = new SelectorRegionAdapter(); var region = adapter.Initialize(tabControl); region.Add(model1); region.Add(model2); Assert.IsFalse(region.ActiveViews.Contains(model2)); tabControl.SelectedItem = model2; Assert.IsTrue(region.ActiveViews.Contains(model2)); Assert.IsFalse(region.ActiveViews.Contains(model1)); tabControl.SelectedItem = model1; Assert.IsTrue(region.ActiveViews.Contains(model1)); Assert.IsFalse(region.ActiveViews.Contains(model2)); }
public async Task ActivatingTheViewShouldUpdateTheSelectedItem() { await ExecuteOnUIThread(() => { var selector = new ListBox(); var view1 = new object(); var view2 = new object(); IRegionAdapter adapter = new SelectorRegionAdapter(null); var region = adapter.Initialize(selector, "Region1"); region.Add(view1); region.Add(view2); Assert.AreNotEqual(view1, selector.SelectedItem); region.Activate(view1); Assert.AreEqual(view1, selector.SelectedItem); region.Activate(view2); Assert.AreEqual(view2, selector.SelectedItem); }); }