Skip to content

Commit

Permalink
parking pg-ng as test containers does not support it see: testcontain…
Browse files Browse the repository at this point in the history
  • Loading branch information
steliospaps committed Jun 25, 2023
1 parent 713a837 commit 772953c
Show file tree
Hide file tree
Showing 4 changed files with 80 additions and 1 deletion.
8 changes: 8 additions & 0 deletions server/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,14 @@
<scope>test</scope>
</dependency>


<dependency>
<groupId>com.impossibl.pgjdbc-ng</groupId>
<artifactId>pgjdbc-ng</artifactId>
<version>0.8.9</version>
</dependency>


<!--
https://mvnrepository.com/artifact/org.springdoc/springdoc-openapi-starter-webflux-ui -->
<dependency>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package io.github.steliospaps.testcontainers;

import org.testcontainers.containers.PostgreSQLContainer;
import org.testcontainers.utility.DockerImageName;

import lombok.extern.slf4j.Slf4j;

@Slf4j
public class PgJdbcNgPostgreSQLContainer extends PostgreSQLContainer<PgJdbcNgPostgreSQLContainer> {

public static final String NAME = "pgsql";

public PgJdbcNgPostgreSQLContainer(DockerImageName dockerImageName) {
super(dockerImageName);
}

public PgJdbcNgPostgreSQLContainer(String dockerImageName) {
super(dockerImageName);
}

@Override
public String getJdbcUrl() {
String original = super.getJdbcUrl();
String neo = original.replaceAll("^jdbc:postgres:", "jdbc:pgsql:");
log.info("rewrote {} to {}", original, neo);
return neo;
}

@Override
public String getDriverClassName() {
return "com.impossibl.postgres.jdbc.PGDriver";
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package io.github.steliospaps.testcontainers;

import org.testcontainers.containers.JdbcDatabaseContainer;
import org.testcontainers.containers.JdbcDatabaseContainerProvider;
import org.testcontainers.containers.PostgreSQLContainer;
import org.testcontainers.jdbc.ConnectionUrl;
import org.testcontainers.utility.DockerImageName;

/**
* Factory for PostgreSQL containers.
*/
public class PgJdbcNgPostgreSQLContainerProvider extends JdbcDatabaseContainerProvider {

public static final String USER_PARAM = "user";

public static final String PASSWORD_PARAM = "password";

@Override
public boolean supports(String databaseType) {
return databaseType.equals(PgJdbcNgPostgreSQLContainer.NAME);
}

@Override
public JdbcDatabaseContainer<PgJdbcNgPostgreSQLContainer> newInstance() {
return newInstance(PostgreSQLContainer.DEFAULT_TAG);
}

@Override
public JdbcDatabaseContainer<PgJdbcNgPostgreSQLContainer> newInstance(String tag) {
return new PgJdbcNgPostgreSQLContainer(DockerImageName.parse(PostgreSQLContainer.IMAGE).withTag(tag));
}

@SuppressWarnings("unchecked")
@Override
public JdbcDatabaseContainer<PgJdbcNgPostgreSQLContainer> newInstance(ConnectionUrl connectionUrl) {
return newInstanceFromConnectionUrl(connectionUrl, USER_PARAM, PASSWORD_PARAM);
}
}
2 changes: 1 addition & 1 deletion server/src/test/resources/config/application.properties
Original file line number Diff line number Diff line change
@@ -1 +1 @@
spring.datasource.url=jdbc:tc:postgresql:15.3:///integration-tests-db
spring.datasource.url=jdbc:tc:pgsql:15.3:///integration-tests-db

0 comments on commit 772953c

Please sign in to comment.