Skip to content

Commit 6030938

Browse files
authored
Move JDBC tests to JUnit Jupiter (#10770)
1 parent 33018cf commit 6030938

File tree

7 files changed

+150
-152
lines changed

7 files changed

+150
-152
lines changed

modules/jdbc/build.gradle

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@ description = "Testcontainers :: JDBC"
33
dependencies {
44
api project(':testcontainers-database-commons')
55

6+
testRuntimeOnly 'org.junit.platform:junit-platform-launcher:1.11.0'
7+
8+
testImplementation 'org.junit.jupiter:junit-jupiter:5.13.4'
69
compileOnly 'org.jetbrains:annotations:26.0.2'
710
testImplementation 'commons-dbutils:commons-dbutils:1.8.1'
811
testImplementation 'org.vibur:vibur-dbcp:26.0'
@@ -13,3 +16,7 @@ dependencies {
1316
exclude(module: 'hamcrest-core')
1417
}
1518
}
19+
20+
test {
21+
useJUnitPlatform()
22+
}

modules/jdbc/src/test/java/org/testcontainers/containers/JdbcDatabaseContainerTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package org.testcontainers.containers;
22

33
import lombok.NonNull;
4-
import org.junit.Test;
4+
import org.junit.jupiter.api.Test;
55
import org.slf4j.Logger;
66

77
import java.sql.Connection;
@@ -10,10 +10,10 @@
1010
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
1111
import static org.mockito.Mockito.mock;
1212

13-
public class JdbcDatabaseContainerTest {
13+
class JdbcDatabaseContainerTest {
1414

1515
@Test
16-
public void anExceptionIsThrownIfJdbcIsNotAvailable() {
16+
void anExceptionIsThrownIfJdbcIsNotAvailable() {
1717
JdbcDatabaseContainer<?> jdbcContainer = new JdbcDatabaseContainerStub("mysql:latest")
1818
.withStartupTimeoutSeconds(1);
1919

modules/jdbc/src/test/java/org/testcontainers/jdbc/ConnectionUrlDriversTests.java

Lines changed: 109 additions & 110 deletions
Original file line numberDiff line numberDiff line change
@@ -1,127 +1,126 @@
11
package org.testcontainers.jdbc;
22

3-
import org.junit.Test;
4-
import org.junit.runner.RunWith;
5-
import org.junit.runners.Parameterized;
6-
import org.junit.runners.Parameterized.Parameter;
3+
import org.junit.jupiter.params.ParameterizedTest;
4+
import org.junit.jupiter.params.provider.Arguments;
5+
import org.junit.jupiter.params.provider.MethodSource;
76

8-
import java.util.Arrays;
97
import java.util.Optional;
8+
import java.util.stream.Stream;
109

1110
import static org.assertj.core.api.Assertions.assertThat;
1211

1312
/**
1413
* This Test class validates that all supported JDBC URL's can be parsed by ConnectionUrl class.
1514
*/
16-
@RunWith(Parameterized.class)
17-
public class ConnectionUrlDriversTests {
15+
class ConnectionUrlDriversTests {
1816

19-
@Parameter
20-
public String jdbcUrl;
21-
22-
@Parameter(1)
23-
public String databaseType;
24-
25-
@Parameter(2)
26-
public Optional<String> tag;
27-
28-
@Parameter(3)
29-
public String dbHostString;
30-
31-
@Parameter(4)
32-
public String databaseName;
33-
34-
@Parameterized.Parameters(name = "{index} - {0}")
35-
public static Iterable<Object[]> data() {
36-
return Arrays.asList(
37-
new Object[][] {
38-
{ "jdbc:tc:mysql:8.0.36://hostname/test", "mysql", Optional.of("8.0.36"), "hostname/test", "test" },
39-
{ "jdbc:tc:mysql://hostname/test", "mysql", Optional.empty(), "hostname/test", "test" },
40-
{
41-
"jdbc:tc:postgresql:1.2.3://hostname/test",
42-
"postgresql",
43-
Optional.of("1.2.3"),
44-
"hostname/test",
45-
"test",
46-
},
47-
{ "jdbc:tc:postgresql://hostname/test", "postgresql", Optional.empty(), "hostname/test", "test" },
48-
{
49-
"jdbc:tc:sqlserver:1.2.3://localhost;instance=SQLEXPRESS:1433;databaseName=test",
50-
"sqlserver",
51-
Optional.of("1.2.3"),
52-
"localhost;instance=SQLEXPRESS:1433;databaseName=test",
53-
"test",
54-
},
55-
{
56-
"jdbc:tc:sqlserver://localhost;instance=SQLEXPRESS:1433;databaseName=test",
57-
"sqlserver",
58-
Optional.empty(),
59-
"localhost;instance=SQLEXPRESS:1433;databaseName=test",
60-
"test",
61-
},
62-
{
63-
"jdbc:tc:mariadb:1.2.3://localhost:3306/test",
64-
"mariadb",
65-
Optional.of("1.2.3"),
66-
"localhost:3306/test",
67-
"test",
68-
},
69-
{ "jdbc:tc:mariadb://localhost:3306/test", "mariadb", Optional.empty(), "localhost:3306/test", "test" },
70-
{
71-
"jdbc:tc:oracle:1.2.3:thin://@localhost:1521/test",
72-
"oracle",
73-
Optional.of("1.2.3"),
74-
"localhost:1521/test",
75-
"test",
76-
},
77-
{
78-
"jdbc:tc:oracle:1.2.3:thin:@localhost:1521/test",
79-
"oracle",
80-
Optional.of("1.2.3"),
81-
"localhost:1521/test",
82-
"test",
83-
},
84-
{
85-
"jdbc:tc:oracle:thin:@localhost:1521/test",
86-
"oracle",
87-
Optional.empty(),
88-
"localhost:1521/test",
89-
"test",
90-
},
91-
{
92-
"jdbc:tc:oracle:1.2.3:thin:@localhost:1521:test",
93-
"oracle",
94-
Optional.of("1.2.3"),
95-
"localhost:1521:test",
96-
"test",
97-
},
98-
{
99-
"jdbc:tc:oracle:1.2.3:thin://@localhost:1521:test",
100-
"oracle",
101-
Optional.of("1.2.3"),
102-
"localhost:1521:test",
103-
"test",
104-
},
105-
{
106-
"jdbc:tc:oracle:1.2.3-anything:thin://@localhost:1521:test",
107-
"oracle",
108-
Optional.of("1.2.3-anything"),
109-
"localhost:1521:test",
110-
"test",
111-
},
112-
{
113-
"jdbc:tc:oracle:thin:@localhost:1521:test",
114-
"oracle",
115-
Optional.empty(),
116-
"localhost:1521:test",
117-
"test",
118-
},
119-
}
17+
public static Stream<Arguments> data() {
18+
return Stream.of(
19+
Arguments.arguments(
20+
"jdbc:tc:mysql:8.0.36://hostname/test",
21+
"mysql",
22+
Optional.of("8.0.36"),
23+
"hostname/test",
24+
"test"
25+
),
26+
Arguments.arguments("jdbc:tc:mysql://hostname/test", "mysql", Optional.empty(), "hostname/test", "test"),
27+
Arguments.arguments(
28+
"jdbc:tc:postgresql:1.2.3://hostname/test",
29+
"postgresql",
30+
Optional.of("1.2.3"),
31+
"hostname/test",
32+
"test"
33+
),
34+
Arguments.arguments(
35+
"jdbc:tc:postgresql://hostname/test",
36+
"postgresql",
37+
Optional.empty(),
38+
"hostname/test",
39+
"test"
40+
),
41+
Arguments.arguments(
42+
"jdbc:tc:sqlserver:1.2.3://localhost;instance=SQLEXPRESS:1433;databaseName=test",
43+
"sqlserver",
44+
Optional.of("1.2.3"),
45+
"localhost;instance=SQLEXPRESS:1433;databaseName=test",
46+
"test"
47+
),
48+
Arguments.arguments(
49+
"jdbc:tc:sqlserver://localhost;instance=SQLEXPRESS:1433;databaseName=test",
50+
"sqlserver",
51+
Optional.empty(),
52+
"localhost;instance=SQLEXPRESS:1433;databaseName=test",
53+
"test"
54+
),
55+
Arguments.arguments(
56+
"jdbc:tc:mariadb:1.2.3://localhost:3306/test",
57+
"mariadb",
58+
Optional.of("1.2.3"),
59+
"localhost:3306/test",
60+
"test"
61+
),
62+
Arguments.arguments(
63+
"jdbc:tc:mariadb://localhost:3306/test",
64+
"mariadb",
65+
Optional.empty(),
66+
"localhost:3306/test",
67+
"test"
68+
),
69+
Arguments.arguments(
70+
"jdbc:tc:oracle:1.2.3:thin://@localhost:1521/test",
71+
"oracle",
72+
Optional.of("1.2.3"),
73+
"localhost:1521/test",
74+
"test"
75+
),
76+
Arguments.arguments(
77+
"jdbc:tc:oracle:1.2.3:thin:@localhost:1521/test",
78+
"oracle",
79+
Optional.of("1.2.3"),
80+
"localhost:1521/test",
81+
"test"
82+
),
83+
Arguments.arguments(
84+
"jdbc:tc:oracle:thin:@localhost:1521/test",
85+
"oracle",
86+
Optional.empty(),
87+
"localhost:1521/test",
88+
"test"
89+
),
90+
Arguments.arguments(
91+
"jdbc:tc:oracle:1.2.3:thin:@localhost:1521:test",
92+
"oracle",
93+
Optional.of("1.2.3"),
94+
"localhost:1521:test",
95+
"test"
96+
),
97+
Arguments.arguments(
98+
"jdbc:tc:oracle:1.2.3:thin://@localhost:1521:test",
99+
"oracle",
100+
Optional.of("1.2.3"),
101+
"localhost:1521:test",
102+
"test"
103+
),
104+
Arguments.arguments(
105+
"jdbc:tc:oracle:1.2.3-anything:thin://@localhost:1521:test",
106+
"oracle",
107+
Optional.of("1.2.3-anything"),
108+
"localhost:1521:test",
109+
"test"
110+
),
111+
Arguments.arguments(
112+
"jdbc:tc:oracle:thin:@localhost:1521:test",
113+
"oracle",
114+
Optional.empty(),
115+
"localhost:1521:test",
116+
"test"
117+
)
120118
);
121119
}
122120

123-
@Test
124-
public void test() {
121+
@ParameterizedTest(name = "{index} - {0}")
122+
@MethodSource("data")
123+
void test(String jdbcUrl, String databaseType, Optional<String> tag, String dbHostString, String databaseName) {
125124
ConnectionUrl url = ConnectionUrl.newInstance(jdbcUrl);
126125
assertThat(url.getDatabaseType()).as("Database Type is as expected").isEqualTo(databaseType);
127126
assertThat(url.getImageTag()).as("Image tag is as expected").isEqualTo(tag);

modules/jdbc/src/test/java/org/testcontainers/jdbc/ConnectionUrlTest.java

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,14 @@
11
package org.testcontainers.jdbc;
22

3-
import org.junit.Rule;
4-
import org.junit.Test;
5-
import org.junit.rules.ExpectedException;
3+
import org.junit.jupiter.api.Test;
64

75
import static org.assertj.core.api.Assertions.assertThat;
6+
import static org.assertj.core.api.Assertions.assertThatThrownBy;
87

9-
public class ConnectionUrlTest {
10-
11-
@Rule
12-
public ExpectedException thrown = ExpectedException.none();
8+
class ConnectionUrlTest {
139

1410
@Test
15-
public void testConnectionUrl1() {
11+
void testConnectionUrl1() {
1612
String urlString = "jdbc:tc:mysql:8.0.36://somehostname:3306/databasename?a=b&c=d";
1713
ConnectionUrl url = ConnectionUrl.newInstance(urlString);
1814

@@ -31,7 +27,7 @@ public void testConnectionUrl1() {
3127
}
3228

3329
@Test
34-
public void testConnectionUrl2() {
30+
void testConnectionUrl2() {
3531
String urlString = "jdbc:tc:mysql://somehostname/databasename";
3632
ConnectionUrl url = ConnectionUrl.newInstance(urlString);
3733

@@ -49,13 +45,13 @@ public void testConnectionUrl2() {
4945
}
5046

5147
@Test
52-
public void testEmptyQueryParameter() {
48+
void testEmptyQueryParameter() {
5349
ConnectionUrl url = ConnectionUrl.newInstance("jdbc:tc:mysql://somehostname/databasename?key=");
5450
assertThat(url.getQueryParameters().get("key")).as("'key' property value").isEqualTo("");
5551
}
5652

5753
@Test
58-
public void testTmpfsOption() {
54+
void testTmpfsOption() {
5955
String urlString = "jdbc:tc:mysql://somehostname/databasename?TC_TMPFS=key:value,key1:value1";
6056
ConnectionUrl url = ConnectionUrl.newInstance(urlString);
6157

@@ -69,7 +65,7 @@ public void testTmpfsOption() {
6965
}
7066

7167
@Test
72-
public void testInitScriptPathCapture() {
68+
void testInitScriptPathCapture() {
7369
String urlString =
7470
"jdbc:tc:mysql:8.0.36://somehostname:3306/databasename?a=b&c=d&TC_INITSCRIPT=somepath/init_mysql.sql";
7571
ConnectionUrl url = ConnectionUrl.newInstance(urlString);
@@ -83,13 +79,14 @@ public void testInitScriptPathCapture() {
8379
.containsEntry("TC_INITSCRIPT", "somepath/init_mysql.sql");
8480

8581
//Parameter sets are unmodifiable
86-
thrown.expect(UnsupportedOperationException.class);
87-
url.getContainerParameters().remove("TC_INITSCRIPT");
88-
url.getQueryParameters().remove("a");
82+
assertThatThrownBy(() -> url.getContainerParameters().remove("TC_INITSCRIPT"))
83+
.isInstanceOf(UnsupportedOperationException.class);
84+
assertThatThrownBy(() -> url.getQueryParameters().remove("a"))
85+
.isInstanceOf(UnsupportedOperationException.class);
8986
}
9087

9188
@Test
92-
public void testInitFunctionCapture() {
89+
void testInitFunctionCapture() {
9390
String urlString =
9491
"jdbc:tc:mysql:8.0.36://somehostname:3306/databasename?a=b&c=d&TC_INITFUNCTION=org.testcontainers.jdbc.JDBCDriverTest::sampleInitFunction";
9592
ConnectionUrl url = ConnectionUrl.newInstance(urlString);
@@ -105,15 +102,15 @@ public void testInitFunctionCapture() {
105102
}
106103

107104
@Test
108-
public void testDaemonCapture() {
105+
void testDaemonCapture() {
109106
String urlString = "jdbc:tc:mysql:8.0.36://somehostname:3306/databasename?a=b&c=d&TC_DAEMON=true";
110107
ConnectionUrl url = ConnectionUrl.newInstance(urlString);
111108

112109
assertThat(url.isInDaemonMode()).as("Daemon flag is set to true.").isTrue();
113110
}
114111

115112
@Test
116-
public void testHostLessConnectionUrl() {
113+
void testHostLessConnectionUrl() {
117114
String urlString = "jdbc:tc:mysql:8.0.36:///databasename?a=b&c=d";
118115
ConnectionUrl url = ConnectionUrl.newInstance(urlString);
119116

0 commit comments

Comments
 (0)