public void DisposeShouldHitChannelDispose()
        {
            // Arrange
            var consumerChannelFactory = new ConsumerChannelFactory(_connectionWrapper.Object, _logger.Object, _channelRecovery.Object);

            var channel = new Mock <IModel>();

            channel.Setup(x => x.IsOpen).Returns(true);
            _connection.Setup(x => x.CreateModel()).Returns(channel.Object);

            // Act
            consumerChannelFactory.Channel(chn => {});
            consumerChannelFactory.Channel(chn => {});
            consumerChannelFactory.Dispose();

            // Assert
            channel.Verify(x => x.Close(), Times.Exactly(2));
        }
        public void GetChannelShouldReturnAnyIChannel()
        {
            // Arrange
            var consumerChannelFactory = new ConsumerChannelFactory(_connectionWrapper.Object, _logger.Object, _channelRecovery.Object);

            var channel = new Mock <IModel>();

            channel.Setup(x => x.IsOpen).Returns(true);
            _connection.Setup(x => x.CreateModel()).Returns(channel.Object);

            // Act
            // Assert
            consumerChannelFactory.Channel(chn => {
                Assert.True(chn == channel.Object);
            });
        }