public async Task Should_register_multiple_Events_and_multiple_EventHandlers_for_each_Event_and_post_one_new_Event() { // Given IEventBus eventBus = new EventBus(); var e = new MultiplyEvent { Value1 = 2, Multiplier = 3 }; var e2 = new SubtractEvent { Value = 100 }; eventBus.Register <MultiplyEvent, MultiplyEventHandler>(); eventBus.Register <MultiplyEvent, MultiplyEventHandler2>(); eventBus.Register <SubtractEvent, SubtractEventHandler>(); eventBus.Register <SubtractEvent, SubtractEventHandler2>(); // When await eventBus.PostAsync(e); await eventBus.PostAsync(e2); // Then e.Value1.ShouldBe(600); e2.Value.ShouldBe(75); }
public void Should_throw_error_when_registering_the_same_EventHandler_twice() { // Given IEventBus eventBus = new EventBus(); var e = new MultiplyEvent { Value1 = 2, Multiplier = 3 }; eventBus.Register <MultiplyEvent, MultiplyEventHandler>(); // When and Then Assert.Throws <ArgumentException>(() => eventBus.Register <MultiplyEvent, MultiplyEventHandler>()); }
public async Task Should_register_one_Event_and_one_EventHandler_and_post_one_new_Event() { // Given IEventBus eventBus = new EventBus(); var e = new MultiplyEvent { Value1 = 2, Multiplier = 3 }; eventBus.Register <MultiplyEvent, MultiplyEventHandler>(); // When await eventBus.PostAsync(e); // Then e.Value1.ShouldBe(6); }
public async Task Should_register_EventHandlers_from_assembly_and_post_one_new_Event() { // Given IEventBus eventBus = new EventBus(); var e = new MultiplyEvent { Value1 = 2, Multiplier = 3 }; // Assembly from which all the EventHandlers should be registered. var assembly = GetType().Assembly; // When eventBus.RegisterAll(assembly); await eventBus.PostAsync(e); // Then e.Value1.ShouldBe(600); }
public async Task Should_register_one_Event_and_multiple_EventHandlers_and_post_the_same_Event_few_times() { // Given IEventBus eventBus = new EventBus(); var e = new MultiplyEvent { Value1 = 2, Multiplier = 3 }; eventBus.Register <MultiplyEvent, MultiplyEventHandler>(); // When await eventBus.PostAsync(e); await eventBus.PostAsync(e); await eventBus.PostAsync(e); // Then e.Value1.ShouldBe(54); }