public void NoExceptionsWhenPublishingWithoutPublisherRegistrations() { var publisherFake = new FooPublisher(); var messageId = Guid.NewGuid(); var message = new FooHappens(messageId); publisherFake.Publish(message); }
public void EventHandlerIsCalledWhenItsSubscrivedAndTheEventIsPublished() { var messageId = Guid.NewGuid(); var message = new FooHappens(messageId); var subscriber = Substitute.For<IEventSubscriber<FooHappens>>(); var publisher = new FooPublisher(); MessageBus.RegisterPublisher(publisher); MessageBus.RegisterSubscriber(subscriber); publisher.Publish(message); subscriber.Received(1).Handle(message); }
public void ThreeSubsDontHandleEventWhenSubsAreRegisteredThenSubsAreUnRegisteredThenPubIsRegistered() { var subscriberId1 = Guid.NewGuid(); var subscriberId2 = Guid.NewGuid(); var subscriberId3 = Guid.NewGuid(); var subscriberFake1 = Substitute.For<IEventSubscriber<FooHappens>>(); var subscriberFake2 = Substitute.For<IEventSubscriber<FooHappens>>(); var subscriberFake3 = Substitute.For<IEventSubscriber<FooHappens>>(); var publisherFake = new FooPublisher(); subscriberFake1.Id.Returns(subscriberId1); subscriberFake2.Id.Returns(subscriberId2); subscriberFake3.Id.Returns(subscriberId3); var messageId = Guid.NewGuid(); var message = new FooHappens(messageId); var bus = new SingleProcessMessageBus(); bus.RegisterSubscriber(subscriberFake1); bus.RegisterSubscriber(subscriberFake2); bus.RegisterSubscriber(subscriberFake3); bus.UnRegisterSubscriber(subscriberFake1); bus.UnRegisterSubscriber(subscriberFake2); bus.UnRegisterSubscriber(subscriberFake3); bus.RegisterPublisher(publisherFake); publisherFake.Publish(message); subscriberFake1.Received(0).Handle(message); subscriberFake2.Received(0).Handle(message); subscriberFake3.Received(0).Handle(message); }
public void OneSubDoesntHandleEventWhenSubIsRegisteredThenSubIsUnRegisteredThenPubIsRegistered() { var messageId = Guid.NewGuid(); var subscriberId = Guid.NewGuid(); var subscriberFake = Substitute.For<IEventSubscriber<FooHappens>>(); var publisherFake = new FooPublisher(); subscriberFake.Id.Returns(subscriberId); var bus = new SingleProcessMessageBus(); bus.RegisterSubscriber(subscriberFake); bus.UnRegisterSubscriber(subscriberFake); bus.RegisterPublisher(publisherFake); var message = new FooHappens(messageId); publisherFake.Publish(message); subscriberFake.Received(0).Handle(message); }