diff --git a/pom.xml b/pom.xml
index 371b44c..d1e9c1a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -52,6 +52,10 @@
UTF-8
11
11
+ 1.20.1
+ 5.10.2
+
2.2.224
+ 42.7.3
@@ -59,7 +63,7 @@
org.junit
junit-bom
- 5.10.2
+ ${junit.version}
pom
import
@@ -78,7 +82,25 @@
com.h2database
h2
- 2.2.224
+ ${h2.version}
+ test
+
+
+ org.testcontainers
+ postgresql
+ ${testcontainers.version}
+ test
+
+
+ org.testcontainers
+ junit-jupiter
+ ${testcontainers.version}
+ test
+
+
+ org.postgresql
+ postgresql
+ ${postgres.version}
test
@@ -306,4 +328,4 @@
https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/
-
\ No newline at end of file
+
diff --git a/src/test/java/com/hsbc/engineering/PostgresConnectionTest.java b/src/test/java/com/hsbc/engineering/PostgresConnectionTest.java
new file mode 100644
index 0000000..79350f1
--- /dev/null
+++ b/src/test/java/com/hsbc/engineering/PostgresConnectionTest.java
@@ -0,0 +1,50 @@
+package com.hsbc.engineering;
+
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import java.util.Map;
+
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+import org.testcontainers.containers.PostgreSQLContainer;
+import org.testcontainers.junit.jupiter.Container;
+import org.testcontainers.junit.jupiter.Testcontainers;
+
+@Testcontainers
+public class PostgresConnectionTest {
+ final String user = "hello";
+ final String password = "moo";
+ final String database = "foo";
+
+ private Map getConnectionMap() {
+ Map args = Map.of(
+ Arguments.CLASS_NAME, "org.postgresql.Driver",
+ Arguments.USER, user,
+ Arguments.PWD, password,
+ Arguments.URL, pSqlContainer.getJdbcUrl(),
+ Arguments.SQL, "SELECT 2");
+
+ return args;
+ }
+
+ @Container
+ private PostgreSQLContainer pSqlContainer = new PostgreSQLContainer<>("postgres:16")
+ .withDatabaseName(database)
+ .withUsername(user)
+ .withPassword(password);
+
+ @Test
+ void checkOK() {
+ assertTrue(pSqlContainer.isRunning());
+ }
+
+ @Test
+ void mainFunctionTest() {
+ Assertions.assertDoesNotThrow(() -> JDBCInquirer.runSimpleConnectionTest(getConnectionMap()));
+ }
+
+ @Test
+ void perfFunctionTest() {
+ Assertions.assertDoesNotThrow(() -> JDBCInquirer.timeExtractionTest(getConnectionMap()));
+ }
+}