public void ClosesOpenConnectionOnDispose() { var mockRepository = new MockRepository(); var config = mockRepository.DynamicMock<IBrokerConfiguration>(); var connFactory = mockRepository.DynamicMock<IBrokerConnectionFactory>(); var conn = mockRepository.DynamicMock<IBrokerConnection>(); var consumer = mockRepository.DynamicMock<IRegisteredConsumer>(); using (mockRepository.Record()) { SetupResult.For(consumer.MessageType).Return(typeof (TestMessage)); SetupResult.For(connFactory.CreateConnection()).Return(conn); SetupResult.For(config.ConnectionFactory).Return(connFactory); SetupResult.For(config.RegisteredConsumers).Return(new Dictionary<Type, IList<IRegisteredConsumer>> { { typeof(TestMessage), new List<IRegisteredConsumer> { consumer } } }); SetupResult.For(conn.IsOpen).Return(true); Expect.Call(conn.Close); } using (mockRepository.Playback()) { var bus = new Bus(config); bus.GetLiveConnection(); bus.Dispose(); } }