1 package org.dbunit.database;
2
3 import static org.assertj.core.api.Assertions.assertThat;
4
5 import org.dbunit.AbstractDatabaseIT;
6 import org.dbunit.DdlExecutor;
7 import org.dbunit.dataset.Column;
8 import org.dbunit.dataset.Columns;
9 import org.dbunit.dataset.IDataSet;
10 import org.dbunit.testutil.TestUtils;
11 import org.junit.jupiter.api.Test;
12
13
14
15
16
17
18
19 class ResultSetTableMetaDataIT extends AbstractDatabaseIT
20 {
21
22
23
24
25
26
27
28
29 private void refreshConnection() throws Exception
30 {
31 _connection.close();
32 _connection = getDatabaseTester().getConnection();
33 setUpDatabaseConfig(_connection.getConfig());
34 }
35
36 protected IDataSet createDataSet() throws Exception
37 {
38 return _connection.createDataSet();
39 }
40
41
42
43
44
45
46
47 @Test
48 void testGetColumns_withPatternLikeTableName_doesNotInterpretUnderscoreAsPattern() throws Exception
49 {
50 DdlExecutor.dropTables(_connection.getConnection(),
51 "PATTERN_LIKE_TABLE_XX", "PATTERN_LIKE_TABLE_X_");
52 DdlExecutor.executeDdlFile(
53 TestUtils.getFile("sql/hypersonic_dataset_pattern_test.sql"),
54 _connection.getConnection(), false);
55 try
56 {
57 final String tableName = "PATTERN_LIKE_TABLE_X_";
58 final String[] columnNames = {"VARCHAR_COL_XUNDERSCORE"};
59
60 final String sql = "select * from " + tableName;
61 final ForwardOnlyResultSetTable resultSetTable =
62 new ForwardOnlyResultSetTable(tableName, sql, _connection);
63 final ResultSetTableMetaData metaData =
64 (ResultSetTableMetaData) resultSetTable.getTableMetaData();
65
66 final Column[] columns = metaData.getColumns();
67
68 assertThat(columns).as("column count").hasSize(columnNames.length);
69
70 for (int i = 0; i < columnNames.length; i++)
71 {
72 final Column column =
73 Columns.getColumn(columnNames[i], columns);
74 assertThat(column.getColumnName()).as(columnNames[i])
75 .isEqualToIgnoringCase(columnNames[i]);
76 }
77 }
78 finally
79 {
80
81
82 refreshConnection();
83 DdlExecutor.dropTables(_connection.getConnection(),
84 "PATTERN_LIKE_TABLE_XX", "PATTERN_LIKE_TABLE_X_");
85 }
86 }
87
88 }