/** * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License. * * Copyright 2012-2016 the original author or authors. */ package org.assertj.db.database.hsqldb; import org.junit.Test; import java.sql.*; import static org.assertj.core.api.Assertions.assertThat; /** * Test on the HSQLDB database. * * @author RĂ©gis Pouiller */ public class HsqldbDataBase_Test extends AbstractHsqlsbTest { private final String URL = "jdbc:hsqldb:mem:testHsqldb"; private final String USER = "SA"; private final String PASSWORD = ""; @Test public void test_catalog_for_data_source() throws SQLException { try (Connection connection = dataSource.getConnection()) { String catalog = connection.getCatalog(); assertThat(catalog).isEqualTo("PUBLIC"); } } @Test public void test_catalog_for_source() throws SQLException { try (Connection connection = DriverManager.getConnection(URL, USER, PASSWORD)) { String catalog = connection.getCatalog(); assertThat(catalog).isEqualTo("PUBLIC"); } } @Test public void test_schema_for_data_source() throws SQLException { try (Connection connection = dataSource.getConnection()) { String schema = connection.getSchema(); assertThat(schema).isEqualTo("PUBLIC"); } } @Test public void test_schema_for_source() throws SQLException { try (Connection connection = DriverManager.getConnection(URL, USER, PASSWORD)) { String schema = connection.getSchema(); assertThat(schema).isEqualTo("PUBLIC"); } } @Test public void test_tables_for_data_source() throws SQLException { try (Connection connection = dataSource.getConnection()) { DatabaseMetaData databaseMetaData = connection.getMetaData(); ResultSet resultSet = databaseMetaData.getTables("PUBLIC", "PUBLIC", null, new String[] { "TABLE" }); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("TABLE_NAME")).isEqualTo("TEST"); assertThat(resultSet.next()).isFalse(); } } @Test public void test_tables_for_source() throws SQLException { try (Connection connection = DriverManager.getConnection(URL, USER, PASSWORD)) { DatabaseMetaData databaseMetaData = connection.getMetaData(); ResultSet resultSet = databaseMetaData.getTables("PUBLIC", "PUBLIC", null, new String[] { "TABLE" }); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("TABLE_NAME")).isEqualTo("TEST"); assertThat(resultSet.next()).isFalse(); } } @Test public void test_table_primary_keys_for_data_source() throws SQLException { try (Connection connection = dataSource.getConnection()) { DatabaseMetaData databaseMetaData = connection.getMetaData(); { ResultSet resultSet = databaseMetaData.getPrimaryKeys("PUBLIC", "PUBLIC", "TEST"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR1"); assertThat(resultSet.next()).isFalse(); } { ResultSet resultSet = databaseMetaData.getPrimaryKeys("PUBLIC", "PUBLIC", "test"); assertThat(resultSet.next()).isFalse(); } } } @Test public void test_table_primary_keys_for_source() throws SQLException { try (Connection connection = DriverManager.getConnection(URL, USER, PASSWORD)) { DatabaseMetaData databaseMetaData = connection.getMetaData(); { ResultSet resultSet = databaseMetaData.getPrimaryKeys("PUBLIC", "PUBLIC", "TEST"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR1"); assertThat(resultSet.next()).isFalse(); } { ResultSet resultSet = databaseMetaData.getPrimaryKeys("PUBLIC", "PUBLIC", "test"); assertThat(resultSet.next()).isFalse(); } } } @Test public void test_table_columns_for_data_source() throws SQLException { try (Connection connection = dataSource.getConnection()) { DatabaseMetaData databaseMetaData = connection.getMetaData(); { ResultSet resultSet = databaseMetaData.getColumns("PUBLIC", "PUBLIC", "TEST", null); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR1"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR2"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR3"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR4"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR5"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR6"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR7"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR8"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR9"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR10"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR11"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR12"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR13"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR14"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR15"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR16"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR17"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR18"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR19"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR20"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR21"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR22"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR23"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR24"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR25"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR26"); assertThat(resultSet.next()).isFalse(); } { ResultSet resultSet = databaseMetaData.getColumns("PUBLIC", "PUBLIC", "test", null); assertThat(resultSet.next()).isFalse(); } } } @Test public void test_table_columns_for_source() throws SQLException { try (Connection connection = DriverManager.getConnection(URL, USER, PASSWORD)) { DatabaseMetaData databaseMetaData = connection.getMetaData(); { ResultSet resultSet = databaseMetaData.getColumns("PUBLIC", "PUBLIC", "TEST", null); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR1"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR2"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR3"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR4"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR5"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR6"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR7"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR8"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR9"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR10"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR11"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR12"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR13"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR14"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR15"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR16"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR17"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR18"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR19"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR20"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR21"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR22"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR23"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR24"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR25"); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getString("COLUMN_NAME")).isEqualTo("VAR26"); assertThat(resultSet.next()).isFalse(); } { ResultSet resultSet = databaseMetaData.getColumns("PUBLIC", "PUBLIC", "test", null); assertThat(resultSet.next()).isFalse(); } } } @Test public void test_request_columns_for_data_source() throws SQLException { try (Connection connection = dataSource.getConnection()) { try (Statement statement = connection.createStatement()) { try (ResultSet resultSet1 = statement.executeQuery("select * from test")) { ResultSetMetaData resultSetMetaData = resultSet1.getMetaData(); assertThat(resultSetMetaData.getColumnCount()).isEqualTo(26); assertThat(resultSetMetaData.getColumnName(1)).isEqualTo("VAR1"); assertThat(resultSetMetaData.getColumnName(2)).isEqualTo("VAR2"); assertThat(resultSetMetaData.getColumnName(3)).isEqualTo("VAR3"); assertThat(resultSetMetaData.getColumnName(4)).isEqualTo("VAR4"); assertThat(resultSetMetaData.getColumnName(5)).isEqualTo("VAR5"); assertThat(resultSetMetaData.getColumnName(6)).isEqualTo("VAR6"); assertThat(resultSetMetaData.getColumnName(7)).isEqualTo("VAR7"); assertThat(resultSetMetaData.getColumnName(8)).isEqualTo("VAR8"); assertThat(resultSetMetaData.getColumnName(9)).isEqualTo("VAR9"); assertThat(resultSetMetaData.getColumnName(10)).isEqualTo("VAR10"); assertThat(resultSetMetaData.getColumnName(11)).isEqualTo("VAR11"); assertThat(resultSetMetaData.getColumnName(12)).isEqualTo("VAR12"); assertThat(resultSetMetaData.getColumnName(13)).isEqualTo("VAR13"); assertThat(resultSetMetaData.getColumnName(14)).isEqualTo("VAR14"); assertThat(resultSetMetaData.getColumnName(15)).isEqualTo("VAR15"); assertThat(resultSetMetaData.getColumnName(16)).isEqualTo("VAR16"); assertThat(resultSetMetaData.getColumnName(17)).isEqualTo("VAR17"); assertThat(resultSetMetaData.getColumnName(18)).isEqualTo("VAR18"); assertThat(resultSetMetaData.getColumnName(19)).isEqualTo("VAR19"); assertThat(resultSetMetaData.getColumnName(20)).isEqualTo("VAR20"); assertThat(resultSetMetaData.getColumnName(21)).isEqualTo("VAR21"); assertThat(resultSetMetaData.getColumnName(22)).isEqualTo("VAR22"); assertThat(resultSetMetaData.getColumnName(23)).isEqualTo("VAR23"); assertThat(resultSetMetaData.getColumnName(24)).isEqualTo("VAR24"); assertThat(resultSetMetaData.getColumnName(25)).isEqualTo("VAR25"); assertThat(resultSetMetaData.getColumnName(26)).isEqualTo("VAR26"); } } } } @Test public void test_request_columns_for_source() throws SQLException { try (Connection connection = DriverManager.getConnection(URL, USER, PASSWORD)) { try (Statement statement = connection.createStatement()) { try (ResultSet resultSet1 = statement.executeQuery("select * from test")) { ResultSetMetaData resultSetMetaData = resultSet1.getMetaData(); assertThat(resultSetMetaData.getColumnCount()).isEqualTo(26); assertThat(resultSetMetaData.getColumnName(1)).isEqualTo("VAR1"); assertThat(resultSetMetaData.getColumnName(2)).isEqualTo("VAR2"); assertThat(resultSetMetaData.getColumnName(3)).isEqualTo("VAR3"); assertThat(resultSetMetaData.getColumnName(4)).isEqualTo("VAR4"); assertThat(resultSetMetaData.getColumnName(5)).isEqualTo("VAR5"); assertThat(resultSetMetaData.getColumnName(6)).isEqualTo("VAR6"); assertThat(resultSetMetaData.getColumnName(7)).isEqualTo("VAR7"); assertThat(resultSetMetaData.getColumnName(8)).isEqualTo("VAR8"); assertThat(resultSetMetaData.getColumnName(9)).isEqualTo("VAR9"); assertThat(resultSetMetaData.getColumnName(10)).isEqualTo("VAR10"); assertThat(resultSetMetaData.getColumnName(11)).isEqualTo("VAR11"); assertThat(resultSetMetaData.getColumnName(12)).isEqualTo("VAR12"); assertThat(resultSetMetaData.getColumnName(13)).isEqualTo("VAR13"); assertThat(resultSetMetaData.getColumnName(14)).isEqualTo("VAR14"); assertThat(resultSetMetaData.getColumnName(15)).isEqualTo("VAR15"); assertThat(resultSetMetaData.getColumnName(16)).isEqualTo("VAR16"); assertThat(resultSetMetaData.getColumnName(17)).isEqualTo("VAR17"); assertThat(resultSetMetaData.getColumnName(18)).isEqualTo("VAR18"); assertThat(resultSetMetaData.getColumnName(19)).isEqualTo("VAR19"); assertThat(resultSetMetaData.getColumnName(20)).isEqualTo("VAR20"); assertThat(resultSetMetaData.getColumnName(21)).isEqualTo("VAR21"); assertThat(resultSetMetaData.getColumnName(22)).isEqualTo("VAR22"); assertThat(resultSetMetaData.getColumnName(23)).isEqualTo("VAR23"); assertThat(resultSetMetaData.getColumnName(24)).isEqualTo("VAR24"); assertThat(resultSetMetaData.getColumnName(25)).isEqualTo("VAR25"); assertThat(resultSetMetaData.getColumnName(26)).isEqualTo("VAR26"); } } } } }