From 769e87ce0aaa6ce37514e4a3bf9c1d859dfab979 Mon Sep 17 00:00:00 2001 From: Parjanya Mudunuri <137906335+parj-hsbc@users.noreply.github.com> Date: Sun, 11 Aug 2024 19:11:36 +0000 Subject: [PATCH] Added postgres test container --- pom.xml | 28 +++++++++-- .../engineering/PostgresConnectionTest.java | 50 +++++++++++++++++++ 2 files changed, 75 insertions(+), 3 deletions(-) create mode 100644 src/test/java/com/hsbc/engineering/PostgresConnectionTest.java 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())); + } +}