void InitializeBus(int numberOfRetries, BuiltinContainerAdapter adapter, ManualResetEvent poisonEventToSet)
        {
            RebusLoggerFactory.Current = new ConsoleLoggerFactory(false) { MinLevel = LogLevel.Warn };

            var connectionString = AzureServiceBusMessageQueueFactory.ConnectionString;
            
            using (var queue = new AzureServiceBusMessageQueue(connectionString, "test_input"))
            {
                queue.Delete();
            }

            Configure.With(adapter)
                .Transport(t => t.UseAzureServiceBus(connectionString, "test_input", "error"))
                .Behavior(b => b.SetMaxRetriesFor<FacilityException>(numberOfRetries))
                .Events(e => e.PoisonMessage += (bus, message, info) => poisonEventToSet.Set())
                .CreateBus()
                .Start(1);
        }
        protected override void DoSetUp()
        {
            events = new ConcurrentQueue<string>();

            adapter = new BuiltinContainerAdapter();

            TrackDisposable(adapter);

            using (var queue = new AzureServiceBusMessageQueue(connectionString, QueueName))
            {
                queue.Delete();
            }

            AzureServiceBusMessageQueue.PeekLockDurationOnQueueInitialization = TimeSpan.FromMinutes(1);

            Configure.With(adapter)
                .Logging(l => l.Console(minLevel: LogLevel.Info))
                .Transport(t => t.UseAzureServiceBus(connectionString, QueueName, "error")
                    .AutomaticallyRenewPeekLockEvery(TimeSpan.FromMinutes(0.8)))
                .CreateBus()
                .Start();
        }