public void when_enter_pipe_fitter_set_it_should_be_set_in_configuration()
        {
            var configuration = new BrokerIngressConfiguration();
            var sut           = new BrokerIngressConfigurator(configuration);

            sut.WithEnterPipeFitter <StabPipeFitter>().Should().BeSameAs(sut);
            configuration.EnterPipeFitterType.Should().Be <StabPipeFitter>();
        }
        public void when_enter_pipe_fitter_set_more_than_once_it_should_fail()
        {
            var    configuration = new BrokerIngressConfiguration();
            var    configurator  = new BrokerIngressConfigurator(configuration);
            Action sut           = () => configurator.WithEnterPipeFitter <StabPipeFitter>();

            sut.Should().NotThrow();
            configuration.EnterPipeFitterType.Should().Be <StabPipeFitter>();
            EnsureSecondCallOfConfigurationMethodFails(sut);
        }
        private static BrokerIngressConfiguration MakeConfiguration()
        {
            var configuration = new BrokerIngressConfiguration();
            var configurator  = new BrokerIngressConfigurator(configuration);

            configurator
            .WithEnterPipeFitter <IPipeFitter>()
            .WithExitPipeFitter <IPipeFitter>()
            .WithQueueNameMatcher <RegexQueueNameMatcher>()
            .AddApi(
                apiConfigurator => apiConfigurator
                .WithHandlerRegistry <IHandlerRegistry>()
                .WithId("id")
                .WithMessageKey <int>()
                .WithMessagePayload <string>()
                .WithMessageTypesRegistry <IIngressApiMessageTypesRegistry>()
                .WithPipeFitter <IPipeFitter>()
                .WithQueueNamePatternsProvider <IQueueNamePatternsProvider>());

            return(configuration);
        }