aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>2017-03-22 16:05:29 +0100
committerSébastien Lesaint <sebastien.lesaint@sonarsource.com>2017-03-23 17:54:56 +0100
commit436be5476fd12d45b1e20eb58079904ef61b3eea (patch)
tree5418f7a465900a0c2001683aa1d1ddf8b3daed3f
parent3e97687486870bf99715dce4a8c9f9554cc64849 (diff)
downloadsonarqube-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.java24
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));