public void Setup()
        {
            _messageHandlerProvider = new StandardDependecyInjection();
            _queueStarterFactory    = new Mock <ITransportChannelFactory>();
            var transportConfiguration = new Mock <ITransportConfiguration>();

            _queueStarterFactory.Setup(x => x.Middlewares).Returns(new List <IMessageProcessorMiddleware>());
            _queueStarterFactory.Setup(x => x.Configuration).Returns(transportConfiguration.Object);
        }
        public void Should_register_event_processor()
        {
            //arrange
            var provider = new StandardDependecyInjection();

            //act
            provider.RegisterProcessor(new EventProcessor(Mock.Of <ICountable>()));
            //assert
            provider.GetOpenGenericRegistrations(typeof(IProcessMessage <>)).Count().Should().Be(1);
            provider.GetOpenGenericRegistrations(typeof(IProcessMessage <>)).Should().Contain(x => x == typeof(EventProcessor));
        }
        public void Should_register_processor()
        {
            //arrange
            var provider = new StandardDependecyInjection();

            //act
            provider.RegisterProcessor(new SingleCommandProcessor(Mock.Of <ICountable>()));
            //assert
            provider.GetOpenGenericRegistrations(typeof(IProcessMessage <>)).Count().Should().Be(1);
            provider.GetOpenGenericRegistrations(typeof(IProcessMessage <>)).FirstOrDefault().Should().Be(typeof(SingleCommandProcessor));
        }
        public void Should_get_registered_event_processor()
        {
            //arrange
            var provider  = new StandardDependecyInjection();
            var processor = new EventProcessor(Mock.Of <ICountable>());

            provider.RegisterProcessor(processor);
            //act
            var processorFound = provider.GetInstance <IProcessMessage <TestEvent> >(typeof(IProcessEvent <TestEvent, TestSubscription, TestTopicSettings>));

            //assert
            processorFound.Should().Be(processor);
        }
        public void Should_get_registered_processor()
        {
            //arrange
            var provider  = new StandardDependecyInjection();
            var processor = new SingleCommandProcessor(Mock.Of <ICountable>());

            provider.RegisterProcessor(processor);
            //act
            var processorFound = provider.GetInstance <IProcessMessage <TestCommand> >(typeof(IProcessCommand <TestCommand, TestTopicSettings>));

            //assert
            processorFound.Should().Be(processor);
        }