Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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>());
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }