Skip to content

Commit 50fddfd

Browse files
committed
update jdbc ut
1 parent 635484d commit 50fddfd

File tree

1 file changed

+48
-55
lines changed

1 file changed

+48
-55
lines changed

instrumentation/jdbc/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/jdbc/test/JdbcInstrumentationTest.java

Lines changed: 48 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import static org.assertj.core.api.Assertions.assertThat;
1212

1313
import com.google.common.collect.ImmutableMap;
14+
import com.google.common.collect.Maps;
1415
import com.mchange.v2.c3p0.ComboPooledDataSource;
1516
import com.zaxxer.hikari.HikariConfig;
1617
import com.zaxxer.hikari.HikariDataSource;
@@ -67,42 +68,38 @@ class JdbcInstrumentationTest {
6768
@RegisterExtension
6869
static final InstrumentationExtension testing = AgentInstrumentationExtension.create();
6970

70-
private static String dbName;
71-
private static String dbNameLower;
72-
private static Map<String, String> jdbcUrls;
73-
private static Map<String, String> jdbcDriverClassNames;
74-
private static Map<String, String> jdbcUserNames;
75-
private static Properties connectionProps;
71+
@SuppressWarnings("deprecation") // TODO DbIncubatingAttributes.DB_CONNECTION_STRING deprecation
72+
static final AttributeKey<String> DB_CONNECTION_STRING =
73+
DbIncubatingAttributes.DB_CONNECTION_STRING;
74+
75+
private static final String dbName = "jdbcUnitTest";
76+
private static final String dbNameLower = dbName.toLowerCase(Locale.ROOT);
77+
private static final Map<String, String> jdbcUrls =
78+
ImmutableMap.of(
79+
"h2", "jdbc:h2:mem:" + dbName,
80+
"derby", "jdbc:derby:memory:" + dbName,
81+
"hsqldb", "jdbc:hsqldb:mem:" + dbName);
82+
private static final Map<String, String> jdbcDriverClassNames =
83+
ImmutableMap.of(
84+
"h2", "org.h2.Driver",
85+
"derby", "org.apache.derby.jdbc.EmbeddedDriver",
86+
"hsqldb", "org.hsqldb.jdbc.JDBCDriver");
87+
private static final Map<String, String> jdbcUserNames = Maps.newHashMap();
88+
private static final Properties connectionProps = new Properties();
7689
// JDBC Connection pool name (i.e. HikariCP) -> Map<dbName, Datasource>
77-
private static Map<String, Map<String, DataSource>> cpDatasources;
90+
private static final Map<String, Map<String, DataSource>> cpDatasources = Maps.newHashMap();
7891

79-
@BeforeAll
80-
static void setUp() {
81-
dbName = "jdbcUnitTest";
82-
dbNameLower = dbName.toLowerCase(Locale.ROOT);
83-
jdbcUrls =
84-
ImmutableMap.of(
85-
"h2", "jdbc:h2:mem:" + dbName,
86-
"derby", "jdbc:derby:memory:" + dbName,
87-
"hsqldb", "jdbc:hsqldb:mem:" + dbName);
88-
89-
jdbcDriverClassNames =
90-
ImmutableMap.of(
91-
"h2", "org.h2.Driver",
92-
"derby", "org.apache.derby.jdbc.EmbeddedDriver",
93-
"hsqldb", "org.hsqldb.jdbc.JDBCDriver");
94-
95-
jdbcUserNames = new HashMap<>();
92+
static {
9693
jdbcUserNames.put("derby", "APP");
9794
jdbcUserNames.put("h2", null);
9895
jdbcUserNames.put("hsqldb", "SA");
9996

100-
connectionProps = new Properties();
10197
connectionProps.put("databaseName", "someDb");
10298
connectionProps.put("OPEN_NEW", "true"); // So H2 doesn't complain about username/password.
99+
}
103100

104-
cpDatasources = new HashMap<>();
105-
101+
@BeforeAll
102+
static void setUp() {
106103
prepareConnectionPoolDatasources();
107104
}
108105

@@ -354,6 +351,7 @@ public void testBasicStatement(
354351
String table)
355352
throws SQLException {
356353
Statement statement = connection.createStatement();
354+
cleanup.deferCleanup(statement);
357355
ResultSet resultSet = testing.runWithSpan("parent", () -> statement.executeQuery(query));
358356

359357
resultSet.next();
@@ -376,12 +374,10 @@ public void testBasicStatement(
376374
val.satisfiesAnyOf(
377375
v -> assertThat(v).isEqualTo(username),
378376
v -> assertThat(v).isNull())),
379-
equalTo(getDbConnectionStringKey(), url),
377+
equalTo(DB_CONNECTION_STRING, url),
380378
equalTo(DbIncubatingAttributes.DB_STATEMENT, sanitizedQuery),
381379
equalTo(DbIncubatingAttributes.DB_OPERATION, "SELECT"),
382380
equalTo(DbIncubatingAttributes.DB_SQL_TABLE, table))));
383-
statement.close();
384-
connection.close();
385381
}
386382

387383
static Stream<Arguments> preparedStatementStream() throws SQLException {
@@ -505,7 +501,7 @@ void testPreparedStatementExecute(
505501
val.satisfiesAnyOf(
506502
v -> assertThat(v).isEqualTo(username),
507503
v -> assertThat(v).isNull())),
508-
equalTo(getDbConnectionStringKey(), url),
504+
equalTo(DB_CONNECTION_STRING, url),
509505
equalTo(DbIncubatingAttributes.DB_STATEMENT, sanitizedQuery),
510506
equalTo(DbIncubatingAttributes.DB_OPERATION, "SELECT"),
511507
equalTo(DbIncubatingAttributes.DB_SQL_TABLE, table))));
@@ -550,7 +546,7 @@ void testPreparedStatementQuery(
550546
val.satisfiesAnyOf(
551547
v -> assertThat(v).isEqualTo(username),
552548
v -> assertThat(v).isNull())),
553-
equalTo(getDbConnectionStringKey(), url),
549+
equalTo(DB_CONNECTION_STRING, url),
554550
equalTo(DbIncubatingAttributes.DB_STATEMENT, sanitizedQuery),
555551
equalTo(DbIncubatingAttributes.DB_OPERATION, "SELECT"),
556552
equalTo(DbIncubatingAttributes.DB_SQL_TABLE, table))));
@@ -595,7 +591,7 @@ void testPreparedCall(
595591
val.satisfiesAnyOf(
596592
v -> assertThat(v).isEqualTo(username),
597593
v -> assertThat(v).isNull())),
598-
equalTo(getDbConnectionStringKey(), url),
594+
equalTo(DB_CONNECTION_STRING, url),
599595
equalTo(DbIncubatingAttributes.DB_STATEMENT, sanitizedQuery),
600596
equalTo(DbIncubatingAttributes.DB_OPERATION, "SELECT"),
601597
equalTo(DbIncubatingAttributes.DB_SQL_TABLE, table))));
@@ -739,7 +735,7 @@ void testStatementUpdate(
739735
val.satisfiesAnyOf(
740736
v -> assertThat(v).isEqualTo(username),
741737
v -> assertThat(v).isNull())),
742-
equalTo(getDbConnectionStringKey(), url),
738+
equalTo(DB_CONNECTION_STRING, url),
743739
equalTo(DbIncubatingAttributes.DB_STATEMENT, query),
744740
equalTo(DbIncubatingAttributes.DB_OPERATION, "CREATE TABLE"),
745741
equalTo(DbIncubatingAttributes.DB_SQL_TABLE, table))));
@@ -845,11 +841,12 @@ void testPreparedStatementUpdate(
845841
equalTo(DbIncubatingAttributes.DB_NAME, dbNameLower),
846842
satisfies(
847843
DbIncubatingAttributes.DB_USER,
848-
val ->
849-
val.satisfiesAnyOf(
850-
v -> assertThat(v).isEqualTo(username),
851-
v -> assertThat(v).isNull())),
852-
equalTo(getDbConnectionStringKey(), url),
844+
val -> {
845+
if (username != null) {
846+
val.isEqualTo(username);
847+
}
848+
}),
849+
equalTo(DB_CONNECTION_STRING, url),
853850
equalTo(DbIncubatingAttributes.DB_STATEMENT, query),
854851
equalTo(DbIncubatingAttributes.DB_OPERATION, "CREATE TABLE"),
855852
equalTo(DbIncubatingAttributes.DB_SQL_TABLE, table))));
@@ -959,11 +956,12 @@ void testConnectionConstructorThrowing(
959956
equalTo(DbIncubatingAttributes.DB_NAME, dbNameLower),
960957
satisfies(
961958
DbIncubatingAttributes.DB_USER,
962-
val ->
963-
val.satisfiesAnyOf(
964-
v -> assertThat(v).isEqualTo(username),
965-
v -> assertThat(v).isNull())),
966-
equalTo(getDbConnectionStringKey(), url),
959+
val -> {
960+
if (username != null) {
961+
val.isEqualTo(username);
962+
}
963+
}),
964+
equalTo(DB_CONNECTION_STRING, url),
967965
equalTo(DbIncubatingAttributes.DB_STATEMENT, sanitizedQuery),
968966
equalTo(DbIncubatingAttributes.DB_OPERATION, "SELECT"),
969967
equalTo(DbIncubatingAttributes.DB_SQL_TABLE, table))));
@@ -1040,7 +1038,7 @@ void testGetConnection(
10401038
v1 -> assertThat(v1).isEqualTo(user),
10411039
v1 -> assertThat(v1).isNull())),
10421040
equalTo(DbIncubatingAttributes.DB_NAME, "jdbcunittest"),
1043-
equalTo(getDbConnectionStringKey(), connectionString))));
1041+
equalTo(DB_CONNECTION_STRING, connectionString))));
10441042
if (recursive) {
10451043
assertions.add(
10461044
span ->
@@ -1060,17 +1058,12 @@ void testGetConnection(
10601058
v -> assertThat(v).isEqualTo(user),
10611059
v -> assertThat(v).isNull())),
10621060
equalTo(DbIncubatingAttributes.DB_NAME, "jdbcunittest"),
1063-
equalTo(getDbConnectionStringKey(), connectionString)));
1061+
equalTo(DB_CONNECTION_STRING, connectionString)));
10641062
}
10651063
trace.hasSpansSatisfyingExactly(assertions);
10661064
});
10671065
}
10681066

1069-
@SuppressWarnings("deprecation") // TODO DbIncubatingAttributes.DB_CONNECTION_STRING deprecation
1070-
AttributeKey<String> getDbConnectionStringKey() {
1071-
return DbIncubatingAttributes.DB_CONNECTION_STRING;
1072-
}
1073-
10741067
@ParameterizedTest
10751068
@DisplayName("test getClientInfo exception")
10761069
@ValueSource(strings = "testing 123")
@@ -1100,7 +1093,7 @@ void testGetClientInfoException(String query) throws SQLException {
11001093
.hasAttributesSatisfying(
11011094
equalTo(DbIncubatingAttributes.DB_SYSTEM, "other_sql"),
11021095
equalTo(DbIncubatingAttributes.DB_STATEMENT, "testing ?"),
1103-
equalTo(getDbConnectionStringKey(), "testdb://localhost"),
1096+
equalTo(DB_CONNECTION_STRING, "testdb://localhost"),
11041097
equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"))));
11051098
}
11061099

@@ -1182,7 +1175,7 @@ void testProduceProperSpanName(
11821175
.hasAttributesSatisfying(
11831176
equalTo(DbIncubatingAttributes.DB_SYSTEM, "other_sql"),
11841177
equalTo(DbIncubatingAttributes.DB_NAME, databaseName),
1185-
equalTo(getDbConnectionStringKey(), "testdb://localhost"),
1178+
equalTo(DB_CONNECTION_STRING, "testdb://localhost"),
11861179
equalTo(DbIncubatingAttributes.DB_STATEMENT, sanitizedQuery),
11871180
equalTo(DbIncubatingAttributes.DB_OPERATION, operation),
11881181
equalTo(DbIncubatingAttributes.DB_SQL_TABLE, table),
@@ -1232,7 +1225,7 @@ void testConnectionCached(String connectionPoolName) throws SQLException {
12321225
equalTo(DbIncubatingAttributes.DB_SYSTEM, "hsqldb"),
12331226
equalTo(DbIncubatingAttributes.DB_NAME, dbNameLower),
12341227
equalTo(DbIncubatingAttributes.DB_USER, "SA"),
1235-
equalTo(getDbConnectionStringKey(), "hsqldb:mem:"),
1228+
equalTo(DB_CONNECTION_STRING, "hsqldb:mem:"),
12361229
equalTo(
12371230
DbIncubatingAttributes.DB_STATEMENT,
12381231
"SELECT ? FROM INFORMATION_SCHEMA.SYSTEM_USERS"),
@@ -1305,7 +1298,7 @@ void testHandleRecursiveStatements(
13051298
.hasParent(trace.getSpan(0))
13061299
.hasAttributesSatisfying(
13071300
equalTo(DbIncubatingAttributes.DB_SYSTEM, "other_sql"),
1308-
equalTo(getDbConnectionStringKey(), "testdb://localhost"),
1301+
equalTo(DB_CONNECTION_STRING, "testdb://localhost"),
13091302
equalTo(DbIncubatingAttributes.DB_STATEMENT, "SELECT * FROM table"),
13101303
equalTo(DbIncubatingAttributes.DB_OPERATION, "SELECT"),
13111304
equalTo(DbIncubatingAttributes.DB_SQL_TABLE, "table"),

0 commit comments

Comments
 (0)