using System.Threading; using Caliburn; using Caliburn.Events.Brokering; using Caliburn.Messaging; using Caliburn.Testability; using MbUnit.Framework; namespace Tests.Caliburn.Messages_can { [TestFixture(ApartmentState = ApartmentState.STA)] public class by_using_an_EventMessageSender { private IEventBroker _eventBroker; [SetUp] public void Before_Each() { TestConfiguration config = new TestConfiguration(); config.EventBroker = _eventBroker = new EventBroker(); CaliburnApplication.Start(config); } [Test] public void trigger_an_event() { TestSubscriberAndPublisher subscriber = new TestSubscriberAndPublisher(); _eventBroker.Subscribe( "event://test/event", new Subscription( subscriber, subscriber.GetType().GetMethod("TestHandler"), false) ); EventMessage message = new EventMessage(); message.Publication = new Publication("event://test/event"); message.Parameters.Add(new Parameter(null)); message.Parameters.Add(new Parameter(null)); EventMessageSender sender = new EventMessageSender(null, message); sender.Send(); Assert.IsTrue(subscriber.TestHandlerCalled); } } }