public void Should_be_able_to_catch_exception()
        {
            var dataSource = DefaultDataSource();
            var databaseConnectionCache = new Mock<IDatabaseConnectionCache>();

            databaseConnectionCache.Setup(m => m.Get(dataSource)).Returns((IDatabaseConnection) null);

            var gateway = new DatabaseGateway(databaseConnectionCache.Object);

            gateway.GetDataTableFor(dataSource, new Mock<IQuery>().Object);
        }
        public void Should_be_able_to_get_a_data_table()
        {
            var query   = new Mock <IQuery>();
            var command = CommandMock();

            command.Setup(m => m.ExecuteReader()).Returns(DataTableReader(2));

            var gateway = new DatabaseGateway();

            using (GetDatabaseContext(command))
            {
                var table = gateway.GetDataTableFor(query.Object);

                Assert.IsNotNull(table);
                Assert.AreEqual(2, table.Rows.Count);
                Assert.AreEqual("row-1", table.Rows[0][0]);
                Assert.AreEqual("row-2", table.Rows[1][0]);
            }
        }