@Test public void QueryTableHasCorrectColumns() throws IOException { try { DataSource queryDataSource = Config.userDatabaseDataSource(); String getColumns = "DESCRIBE " + QueryDaoImpl.QUERY_TABLE; JdbcTemplate queryDatabase = new JdbcTemplate(queryDataSource); List<MySQLColumn> columns = queryDatabase.query(getColumns, new ParseMySQLColumns()); ListAssert.assertContains( columns, new MySQLColumn( QueryDaoImpl.QUERY_ID, MySQLColumn.INT_UNSIGNED(10), MySQLColumn.NEVER_NULL, MySQLColumn.PRIMARY_KEY)); ListAssert.assertContains( columns, new MySQLColumn( QueryDaoImpl.METADATA_ID, MySQLColumn.INT_UNSIGNED(10), MySQLColumn.CAN_NULL, MySQLColumn.NOT_KEY)); ListAssert.assertContains( columns, new MySQLColumn( QueryDaoImpl.EXPERIMENT, MySQLColumn.VARCHAR(255), MySQLColumn.CAN_NULL, MySQLColumn.NOT_KEY)); ListAssert.assertContains( columns, new MySQLColumn( QueryDaoImpl.BARCODE, MySQLColumn.VARCHAR(255), MySQLColumn.CAN_NULL, MySQLColumn.NOT_KEY)); ListAssert.assertContains( columns, new MySQLColumn( QueryDaoImpl.MEASUREMENT, MySQLColumn.VARCHAR(255), MySQLColumn.CAN_NULL, MySQLColumn.NOT_KEY)); ListAssert.assertContains( columns, new MySQLColumn( QueryDaoImpl.START_TIME, MySQLColumn.DATETIME, MySQLColumn.CAN_NULL, MySQLColumn.NOT_KEY)); ListAssert.assertContains( columns, new MySQLColumn( QueryDaoImpl.END_TIME, MySQLColumn.DATETIME, MySQLColumn.CAN_NULL, MySQLColumn.NOT_KEY)); ListAssert.assertContains( columns, new MySQLColumn( QueryDaoImpl.WATERING, MySQLColumn.TINYINT(1), MySQLColumn.NEVER_NULL, MySQLColumn.NOT_KEY)); ListAssert.assertContains( columns, new MySQLColumn( QueryDaoImpl.VISIBLE, MySQLColumn.TINYINT(1), MySQLColumn.NEVER_NULL, MySQLColumn.NOT_KEY)); ListAssert.assertContains( columns, new MySQLColumn( QueryDaoImpl.FLUORESCENT, MySQLColumn.TINYINT(1), MySQLColumn.NEVER_NULL, MySQLColumn.NOT_KEY)); ListAssert.assertContains( columns, new MySQLColumn( QueryDaoImpl.INFRARED, MySQLColumn.TINYINT(1), MySQLColumn.NEVER_NULL, MySQLColumn.NOT_KEY)); } catch (MalformedConfigException e) { fail("Configuration file missing fields."); } }