public IRabbitMQWriter CreateWriter(RabbitMQWriterSetup setup)
 {
     setup = setup.Clone();
     RabbitMQWriter writer = null;
     try
     {
         writer = new RabbitMQWriter(setup, false);
         writer.EnsureOpen(setup.Timeout, setup.CancelToken);
         return writer;
     }
     catch
     {
         DisposeHelper.DisposeIfNotNull(writer);
         throw;
     }
 }
        public void ConfirmSelectIsEnabledTest()
        {
            var connFactory = Substitute.For<IConnectionFactory>();
            var conn = Substitute.For<IConnection>();
            var model = Substitute.For<IModel>();

            connFactory.CreateConnection().Returns(conn);
            connFactory.CreateConnection(string.Empty).ReturnsForAnyArgs(conn);
            conn.CreateModel().Returns(model);

            var setup = new RabbitMQWriterSetup
            {
                ConnectionFactory = connFactory,
                Options = new RabbitMQWriterOptions(),
            };
            using (var rdr = new RabbitMQWriter(setup, false))
            {
                rdr.EnsureOpen(TimeSpan.FromSeconds(90), CancellationToken.None);
                model.Received().ConfirmSelect();
            }
        }