public void AddDynamicSubscription_HandlerTypeAlreadyRegistered_ThrowArgumentException(
                InMemoryEventBusSubscriptionsManager sut
                )
            {
                //Arrange
                sut.AddDynamicSubscription <TestDynamicIntegrationEventHandler>("eventName");

                //Act
                Action act = () => sut.AddDynamicSubscription <TestDynamicIntegrationEventHandler>("eventName");

                //Assert
                act.Should().Throw <ArgumentException>();
            }
예제 #2
0
        public void After_One_Event_Subscription_Should_Contain_The_Event()
        {
            var manager = new InMemoryEventBusSubscriptionsManager();

            manager.AddSubscription <TestIntegrationEvent, TestIntegrationEventHandler>();
            Assert.True(manager.HasSubscriptionsForEvent <TestIntegrationEvent>());

            manager.AddDynamicSubscription <TestDynamicIntegrationEventHandler>(nameof(TestIntegrationEvent));
            Assert.True(manager.HasSubscriptionsForEvent(nameof(TestIntegrationEvent)));
        }
예제 #3
0
        public void Get_Handlers_For_Event_Should_Return_All_Handlers()
        {
            var manager = new InMemoryEventBusSubscriptionsManager();

            manager.AddSubscription <TestIntegrationEvent, TestIntegrationEventHandler>();
            manager.AddDynamicSubscription <TestDynamicIntegrationEventHandler>(nameof(TestIntegrationEvent));

            var handlers = manager.GetHandlersForEvent <TestIntegrationEvent>();

            Assert.Equal(2, handlers.Count());
        }
예제 #4
0
        public void After_One_Subscription_Are_Removed_Event_Shoule_No_Longer_Exists()
        {
            var manager = new InMemoryEventBusSubscriptionsManager();

            manager.AddSubscription <TestIntegrationEvent, TestIntegrationEventHandler>();
            manager.RemoveSubscription <TestIntegrationEvent, TestIntegrationEventHandler>();
            Assert.False(manager.HasSubscriptionsForEvent <TestIntegrationEvent>());

            manager.AddDynamicSubscription <TestDynamicIntegrationEventHandler>(nameof(TestIntegrationEvent));
            manager.RemoveDynamicSubscription <TestDynamicIntegrationEventHandler>(nameof(TestIntegrationEvent));
            Assert.False(manager.HasSubscriptionsForEvent(nameof(TestIntegrationEvent)));
        }
            public void AddDynamicSubscription_NoHandlersRegistered_HandlerIsRegistered(
                InMemoryEventBusSubscriptionsManager sut
                )
            {
                //Arrange

                //Act
                sut.AddDynamicSubscription <TestDynamicIntegrationEventHandler>("eventName");

                //Assert
                sut.GetHandlersForEvent("eventName").ToList().Count.Should().Be(1);
            }
            public void RemoveDynamicSubscription_HandlerRegistered_HandlerIsRemoved(
                InMemoryEventBusSubscriptionsManager sut
                )
            {
                //Arrange
                bool eventRemoved = false;

                sut.OnEventRemoved += new EventHandler <string>(delegate
                {
                    eventRemoved = true;
                });
                sut.AddDynamicSubscription <TestDynamicIntegrationEventHandler>("eventName");

                //Act
                sut.RemoveDynamicSubscription <TestDynamicIntegrationEventHandler>("eventName");

                //Assert
                eventRemoved.Should().BeTrue();
            }