protected override void SetUp()
        {
            PostgreSqlTestHelper.DropTable(_tableName);
            var consoleLoggerFactory = new ConsoleLoggerFactory(false);
            var asyncTaskFactory     = new TplAsyncTaskFactory(consoleLoggerFactory);
            var connectionHelper     = new PostgresConnectionHelper(PostgreSqlTestHelper.ConnectionString);

            _transport = new PostgreSqlTransport(connectionHelper, _tableName, QueueName, consoleLoggerFactory, asyncTaskFactory, new DefaultRebusTime());
            _transport.EnsureTableIsCreated();

            Using(_transport);

            _transport.Initialize();
            _cancellationToken = new CancellationTokenSource().Token;
        }
        public ITransport Create(string inputQueueAddress)
        {
            var tableName = ("rebus_messages_" + TestConfig.Suffix).TrimEnd('_');

            _tablesToDrop.Add(tableName);

            var consoleLoggerFactory = new ConsoleLoggerFactory(false);
            var connectionHelper     = new PostgresConnectionHelper(PostgreSqlTestHelper.ConnectionString);
            var asyncTaskFactory     = new TplAsyncTaskFactory(consoleLoggerFactory);
            var transport            = new PostgreSqlTransport(connectionHelper, tableName, inputQueueAddress, consoleLoggerFactory, asyncTaskFactory);

            _disposables.Add(transport);

            transport.EnsureTableIsCreated();
            transport.Initialize();

            return(transport);
        }
        static PostgreSqlTransport GetTransport()
        {
            var loggerFactory      = new ConsoleLoggerFactory(false);
            var connectionProvider = new PostgresConnectionHelper(PostgreSqlTestHelper.ConnectionString);
            var asyncTaskFactory   = new TplAsyncTaskFactory(loggerFactory);

            var transport = new PostgreSqlTransport(
                connectionProvider,
                TableName,
                QueueName,
                loggerFactory,
                asyncTaskFactory
                );

            transport.EnsureTableIsCreated();
            transport.Initialize();

            return(transport);
        }
        static void Configure(StandardConfigurer <ITransport> configurer, IPostgresConnectionProvider connectionProvider, string tableName, string inputQueueName)
        {
            configurer.Register(context =>
            {
                var rebusLoggerFactory = context.Get <IRebusLoggerFactory>();
                var asyncTaskFactory   = context.Get <IAsyncTaskFactory>();
                var rebusTime          = context.Get <IRebusTime>();
                var transport          = new PostgreSqlTransport(connectionProvider, tableName, inputQueueName, rebusLoggerFactory, asyncTaskFactory, rebusTime);
                transport.EnsureTableIsCreated();
                return(transport);
            });

            configurer.OtherService <ITimeoutManager>().Register(c => new DisabledTimeoutManager());

            configurer.OtherService <IPipeline>().Decorate(c =>
            {
                var pipeline = c.Get <IPipeline>();

                return(new PipelineStepRemover(pipeline)
                       .RemoveIncomingStep(s => s.GetType() == typeof(HandleDeferredMessagesStep)));
            });
        }