]> source.dussan.org Git - sonarqube.git/commitdiff
Fix compatibility of unit test with Java 5
authorSimon Brandhof <simon.brandhof@gmail.com>
Thu, 18 Oct 2012 09:24:03 +0000 (11:24 +0200)
committerSimon Brandhof <simon.brandhof@gmail.com>
Thu, 18 Oct 2012 09:24:03 +0000 (11:24 +0200)
sonar-core/src/test/java/org/sonar/core/persistence/DatabaseUtilsTest.java

index fa06f57d9bd7a03d93f06e15667f0fc3c3a3a48b..7c0080db4350d258cffe54ef4e57993ab268a212 100644 (file)
@@ -37,10 +37,10 @@ public class DatabaseUtilsTest extends AbstractDaoTestCase {
   @Test
   public void should_close_connection() throws SQLException {
     Connection connection = getConnection();
-    assertThat(connection.isClosed()).isFalse();
+    assertThat(isClosed(connection)).isFalse();
 
     DatabaseUtils.closeQuietly(connection);
-    assertThat(connection.isClosed()).isTrue();
+    assertThat(isClosed(connection)).isTrue();
   }
 
   @Test
@@ -59,8 +59,8 @@ public class DatabaseUtilsTest extends AbstractDaoTestCase {
       DatabaseUtils.closeQuietly(rs);
       DatabaseUtils.closeQuietly(statement);
 
-      assertThat(statement.isClosed()).isTrue();
-      // can not execute: assertThat(rs.isClosed()).isTrue(); -> isClosed() has been introduced in Java 6
+      assertThat(isClosed(statement)).isTrue();
+      assertThat(isClosed(rs)).isTrue();
     } finally {
       DatabaseUtils.closeQuietly(connection);
     }
@@ -98,4 +98,40 @@ public class DatabaseUtilsTest extends AbstractDaoTestCase {
     // no failure
     verify(rs).close(); // just to be sure
   }
+
+  /**
+   * Connection.isClosed() has been introduced in java 1.6
+   */
+  private boolean isClosed(Connection c) {
+    try {
+      c.createStatement().execute("SELECT 1");
+      return false;
+    } catch (Exception e) {
+      return true;
+    }
+  }
+
+  /**
+   * Statement.isClosed() has been introduced in java 1.6
+   */
+  private boolean isClosed(Statement s) {
+    try {
+      s.execute("SELECT 1");
+      return false;
+    } catch (Exception e) {
+      return true;
+    }
+  }
+
+  /**
+   * ResultSet.isClosed() has been introduced in java 1.6
+   */
+  private boolean isClosed(ResultSet rs) {
+    try {
+      rs.next();
+      return false;
+    } catch (Exception e) {
+      return true;
+    }
+  }
 }