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())); + } +}