using System.Threading; using System.Windows.Controls; using Caliburn; using Caliburn.Messaging; using Caliburn.Services; using Caliburn.Testability; using MbUnit.Framework; namespace Tests.Caliburn.Messages_can { [TestFixture(ApartmentState = ApartmentState.STA)] public class by_using_an_ActionMessageSender : DispatcherTestBase { private IPresenterManager _presenterManager; [SetUp] public void Before_Each() { TestConfiguration config = new TestConfiguration(); config.PresenterManager = _presenterManager = new PresenterManager(); CaliburnApplication.Start(config); } [Test] public void call_a_method() { ExecuteWithDispatcher( delegate { ActionMessage message = new ActionMessage(); message.Action = "TestAction"; message.Parameters.Add(new Parameter(3.2)); Button source = new Button(); TestPresenter target = new TestPresenter(); ActionMessageSender sender = new ActionMessageSender( source, message ); _presenterManager.AddBinding(target, source); sender.Send(); target.WaitHandle.WaitOne(); Assert.IsTrue(target.TestActionCalled); }); } } }