public void CanUnsubscribe() { var bus = new DirectDispatchMessageBus(); var target = new SingleSubscriber(); bus.Subscribe(target); bus.Unsubscribe(target); var message = new TestMessage(); bus.Publish(message); Assert.That(message.LastReceiver, Is.Null); }
public void SameTargetCanOnlySubscribeOnce() { var bus = new DirectDispatchMessageBus(); var target = new SingleSubscriber(); bus.Subscribe(target); bus.Subscribe(target); bus.Publish <TestMessage>(); Assert.That(target.ReceivedMessages, Is.EqualTo(1)); }
public void CanSubscribeMultipleTargets() { var bus = new DirectDispatchMessageBus(); var target1 = new SingleSubscriber(); var target2 = new SingleSubscriber(); bus.Subscribe(target1); bus.Subscribe(target2); var message = new TestMessage(); bus.Publish(message); Assert.That(target1.LastMessage, Is.SameAs(message)); Assert.That(target2.LastMessage, Is.SameAs(message)); }
public void MessageIsDispatchedOnCallingThreadByDefault() { var dispatchedOnUIThread = false; var bus = new MessageBus(action => { dispatchedOnUIThread = true; action(); }); var target = new SingleSubscriber(); bus.Subscribe(target); bus.Publish <TestMessage>(); Assert.That(dispatchedOnUIThread, Is.False); }
static void Main() { var queue = new BlockingCollectionTaskQueue <ISomething <string> >(); var service = new Worker <ISomething <string> >(queue, SingleSubscriber.Create(new ConsoleDumper()), new NullLogger()); service.RunOnTask(CancellationToken.None); var y = queue.ToAsync(); while (true) { var s = Console.ReadLine(); y.Bar(s); } }
public void SameTargetCanOnlySubscribeOnce() { var bus = new DirectDispatchMessageBus(); var target = new SingleSubscriber(); bus.Subscribe(target); bus.Subscribe(target); bus.Publish<TestMessage>(); Assert.That(target.ReceivedMessages, Is.EqualTo(1)); }
public void MessageIsDispatchedOnCallingThreadByDefault() { var dispatchedOnUIThread = false; var bus = new MessageBus(action => { dispatchedOnUIThread = true; action(); }); var target = new SingleSubscriber(); bus.Subscribe(target); bus.Publish<TestMessage>(); Assert.That(dispatchedOnUIThread, Is.False); }