using System.Collections.Generic; using System.Threading; using System.Windows; using Caliburn; using Caliburn.Metadata; using Caliburn.Services; using MbUnit.Framework; namespace Tests.Caliburn.The_core_framework_can { [TestFixture(ApartmentState = ApartmentState.STA)] public class by_using_the_PresenterManager { private PresenterManager _manager; private TestPresenter _presenter; private DependencyObject _uiElement; [SetUp] public void Before_Each() { _manager = new PresenterManager(); _presenter = new TestPresenter(); _uiElement = new DependencyObject(); } [Test] public void attach_a_presenter_to_any_DependencyObject() { _manager.AddBinding(_presenter, _uiElement); PresenterBinding binding = _manager.GetBinding(_uiElement); Assert.AreEqual(binding.Presenter, _presenter); Assert.AreEqual(binding.Target, _uiElement); } [Test] public void detach_a_presenter_from_its_bound_DependencyObject() { _manager.AddBinding(_presenter, _uiElement); _manager.RemoveBinding(_uiElement); PresenterBinding binding = _manager.GetBinding(_uiElement); Assert.AreEqual(PresenterBinding.NotFound, binding); } [Test] public void locate_all_DependencyObjects_bound_to_a_particular_presenter() { DependencyObject uiElement2 = new DependencyObject(); _manager.AddBinding(_presenter, _uiElement); _manager.AddBinding(_presenter, uiElement2); IList elements = _manager.GetBoundViews(_presenter); Assert.AreEqual(2, elements.Count); Assert.AreEqual(_uiElement, elements[0]); Assert.AreEqual(uiElement2, elements[1]); } [Test] public void get_metadata_for_a_presenter() { PresenterInfo metadata = _manager.GetInfo(typeof(TestPresenter)); Assert.IsNotNull(metadata); } } }