diff options
author | Sébastien Lesaint <sebastien.lesaint@sonarsource.com> | 2017-03-22 16:05:29 +0100 |
---|---|---|
committer | Sébastien Lesaint <sebastien.lesaint@sonarsource.com> | 2017-03-23 17:54:56 +0100 |
commit | 436be5476fd12d45b1e20eb58079904ef61b3eea (patch) | |
tree | 5418f7a465900a0c2001683aa1d1ddf8b3daed3f | |
parent | 3e97687486870bf99715dce4a8c9f9554cc64849 (diff) | |
download | sonarqube-436be5476fd12d45b1e20eb58079904ef61b3eea.tar.gz sonarqube-436be5476fd12d45b1e20eb58079904ef61b3eea.zip |
SONAR-8867 add AbstractDbTester#assertColumnDoesNotExist
-rw-r--r-- | server/sonar-db-core/src/test/java/org/sonar/db/AbstractDbTester.java | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/server/sonar-db-core/src/test/java/org/sonar/db/AbstractDbTester.java b/server/sonar-db-core/src/test/java/org/sonar/db/AbstractDbTester.java index cd39b524349..3295140ed3d 100644 --- a/server/sonar-db-core/src/test/java/org/sonar/db/AbstractDbTester.java +++ b/server/sonar-db-core/src/test/java/org/sonar/db/AbstractDbTester.java @@ -36,10 +36,12 @@ import java.sql.Statement; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.Set; import javax.annotation.CheckForNull; import javax.annotation.Nullable; import org.apache.commons.dbutils.QueryRunner; @@ -367,6 +369,14 @@ public class AbstractDbTester<T extends CoreTestDb> extends ExternalResource { } } + public void assertColumnDoesNotExist(String table, String column) throws SQLException { + try (Connection connection = getConnection(); + PreparedStatement stmt = connection.prepareStatement("select * from " + table); + ResultSet res = stmt.executeQuery()) { + assertThat(getColumnNames(res)).doesNotContain(column); + } + } + public void assertTableDoesNotExist(String table) { try (Connection connection = getConnection()) { boolean tableExists = DatabaseUtils.tableExists(table, connection); @@ -510,6 +520,20 @@ public class AbstractDbTester<T extends CoreTestDb> extends ExternalResource { } } + private Set<String> getColumnNames(ResultSet res) { + try { + Set<String> columnNames = new HashSet<>(); + ResultSetMetaData meta = res.getMetaData(); + int numCol = meta.getColumnCount(); + for (int i = 1; i < numCol + 1; i++) { + columnNames.add(meta.getColumnLabel(i).toLowerCase()); + } + return columnNames; + } catch (Exception e) { + throw new IllegalStateException("Fail to get column names"); + } + } + private IDataSet dbUnitDataSet(InputStream stream) { try { ReplacementDataSet dataSet = new ReplacementDataSet(new FlatXmlDataSet(stream)); |