public void Execute_WhenNonRabbitError_Throws()
        {
            //Arrange
            var disposable = Substitute.For<IDisposable>();
            disposable.When(x => x.Dispose()).Do(c => { throw new Exception(); });
            var snare = new RabbitExceptionSnare<IDisposable>(disposable);

            //Act & Assert
            Assert.Throws<Exception>(snare.Dispose);
        }
        public void Execute_WhenRabbitError_DoesNotThrow()
        {
            //Arrange
            var disposable = Substitute.For<IDisposable>();
            disposable.When(x => x.Dispose()).Do(c => { throw new ChannelAllocationException(); });
            var snare = new RabbitExceptionSnare<IDisposable>(disposable);

            //Act & Assert
            Assert.DoesNotThrow(snare.Dispose);
        }
        public void Execute_WhenNoErrors_Executes()
        {
            //Arrange
            bool called = false;
            var disposable = Substitute.For<IDisposable>();
            disposable.When(x => x.Dispose()).Do(c => called = true);
            var snare = new RabbitExceptionSnare<IDisposable>(disposable);

            //Act
            snare.Dispose();

            //Assert
            Assert.That(called, Is.True);
        }