Skip to content

Commit

Permalink
Merge pull request #147 from zero88/bugfix/workaround-for-vertx-junit5
Browse files Browse the repository at this point in the history
[#146] Upgrade version of lib dependencies
  • Loading branch information
zero88 authored Oct 3, 2022
2 parents 7284c14 + 7091cef commit 3ea4a57
Show file tree
Hide file tree
Showing 9 changed files with 158 additions and 16 deletions.
14 changes: 8 additions & 6 deletions .github/workflows/jooqx.yml
Original file line number Diff line number Diff line change
Expand Up @@ -118,12 +118,14 @@ jobs:
- name: Run test
shell: bash
run: |
./gradlew --stacktrace \
:integtest:${{ steps.db_profile.outputs.project }}:test \
:integtest:${{ steps.db_profile.outputs.project }}:jacocoTestReport \
-Pprofile=${{ env.PROFILE }} \
-PdbImage=${{ steps.db_profile.outputs.dbImage }} \
-PsemanticVersion=${{ needs.context.outputs.semanticVersion }}
count=$(./gradlew --stacktrace \
:integtest:${{ steps.db_profile.outputs.project }}:test \
:integtest:${{ steps.db_profile.outputs.project }}:jacocoTestReport \
-Pprofile=${{ env.PROFILE }} \
-PdbImage=${{ steps.db_profile.outputs.dbImage }} \
-PsemanticVersion=${{ needs.context.outputs.semanticVersion }} \
| tee 1>&2 | grep -c 'There were failing tests' ||:)
(( count > 0 )) && exit 1 || echo
# - name: SonarQube
# shell: bash
Expand Down
9 changes: 5 additions & 4 deletions buildSrc/src/main/kotlin/Dependencies.kt
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ object TestLibs {

object Version {

const val junit5 = "5.7.0"
const val junit5 = "5.9.1"
}

const val junit5Api = "org.junit.jupiter:junit-jupiter-api:${Version.junit5}"
Expand All @@ -51,7 +51,7 @@ object TestLibs {
object TestContainers {
object Version {

const val ver = "1.17.1"
const val ver = "1.17.3"
}

const val junit5 = "org.testcontainers:junit-jupiter:${Version.ver}"
Expand All @@ -64,12 +64,13 @@ object VertxLibs {
object Version {

private val pool = mapOf(2 to (0..7).toList(), 3 to (0..3).toList())
@JvmField val vertx = "4.${pool.ver(2, 3)}"
@JvmField val vertx = "4.${pool.ver(3, 0)}"
const val docgen = "0.9.4"
const val junitVertx = "4.2.5"
}

@JvmField val core = "io.vertx:vertx-core:${Version.vertx}"
@JvmField val junit5 = "io.vertx:vertx-junit5:${Version.vertx}"
@JvmField val junit5 = "io.vertx:vertx-junit5:${Version.junitVertx}"
@JvmField val sqlClient = "io.vertx:vertx-sql-client:${Version.vertx}"
@JvmField val jdbc = "io.vertx:vertx-jdbc-client:${Version.vertx}"
@JvmField val pgsql = "io.vertx:vertx-pg-client:${Version.vertx}"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,10 @@
import io.github.zero88.jooqx.datatype.DataTypeMapperRegistry;
import io.github.zero88.jooqx.provider.TypeMapperRegistryProvider;
import io.github.zero88.jooqx.spi.pg.datatype.PgTypeMapperRegistry;
import io.github.zero88.sample.model.pgsql.DefaultCatalog;
import io.github.zero88.sample.model.pgsql.Public;

public interface PgUseVertxType
extends TypeMapperRegistryProvider, PostgreSQLHelper<io.github.zero88.sample.model.pgsql.Public> {
public interface PgUseVertxType extends TypeMapperRegistryProvider, PostgreSQLHelper<Public> {

@Override
default DataTypeMapperRegistry typeMapperRegistry() {
Expand All @@ -16,8 +17,8 @@ default DataTypeMapperRegistry typeMapperRegistry() {
}

@Override
default io.github.zero88.sample.model.pgsql.Public schema() {
return io.github.zero88.sample.model.pgsql.DefaultCatalog.DEFAULT_CATALOG.PUBLIC;
default Public schema() {
return DefaultCatalog.DEFAULT_CATALOG.PUBLIC;
}

boolean alreadyGenerated();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@
import io.vertx.jdbcclient.JDBCPool;
import io.vertx.junit5.Checkpoint;
import io.vertx.junit5.VertxTestContext;
import io.vertx.sqlclient.Row;
import io.vertx.sqlclient.RowSet;

//Fixed in https://github.com/vert-x3/vertx-jdbc-client/pull/235
class PgJDBCQueryTest extends PgSQLJooqxTest<JDBCPool>
Expand All @@ -40,6 +42,20 @@ public DataTypeMapperRegistry typeMapperRegistry() {
return PgUseJooqType.super.typeMapperRegistry().add(UserTypeAsJooqType.create(new JDBCIntervalConverter()));
}

@Test
void test_simple(VertxTestContext ctx) {
Checkpoint cp = ctx.checkpoint();
jooqx.sqlClient()
.query("select '[\"test\"]'::jsonb")
.execute()
.onFailure(ctx::failNow)
.onSuccess(res -> ctx.verify(() -> {
final RowSet<Row> value = res.value();
Assertions.assertInstanceOf(String.class, value.iterator().next().getValue(0));
cp.flag();
}));
}

@Test
void test_query_temporal(VertxTestContext ctx) {
Checkpoint cp = ctx.checkpoint();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package io.github.zero88.integtest.jooqx.pg.jooq;

import org.jooq.JSONB;
import org.jooq.impl.DSL;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
Expand Down Expand Up @@ -53,6 +55,19 @@ public DataTypeMapperRegistry typeMapperRegistry() {
UserTypeAsJooqType.create(new FullAddressConverter()));
}

@Test
void test_simple(VertxTestContext ctx) {
Checkpoint cp = ctx.checkpoint();
jooqx.sqlQuery("select '[\"test\"]'::jsonb", DSLAdapter.fetchOne(DSL.field("test", JSONB.class)))
.onSuccess(rec -> ctx.verify(() -> {
final Object value = rec.getValue(0);
Assertions.assertInstanceOf(JSONB.class, value);
Assertions.assertEquals(JSONB.jsonb("[\"test\"]"), value);
cp.flag();
}))
.onFailure(ctx::failNow);
}

@Test
void test_query_numeric(VertxTestContext ctx) {
Checkpoint cp = ctx.checkpoint();
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
package io.github.zero88.integtest.jooqx.pg.vertx;

import org.jooq.impl.DSL;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;

import io.github.zero88.integtest.jooqx.pg.PgUseVertxType;
import io.github.zero88.jooqx.DSLAdapter;
import io.github.zero88.jooqx.spi.jdbc.JDBCErrorConverterProvider;
import io.github.zero88.jooqx.spi.jdbc.JDBCPoolHikariProvider;
import io.github.zero88.jooqx.spi.pg.PgSQLJooqxTest;
import io.vertx.core.json.JsonArray;
import io.vertx.core.json.JsonObject;
import io.vertx.jdbcclient.JDBCPool;
import io.vertx.junit5.Checkpoint;
import io.vertx.junit5.VertxTestContext;

@SuppressWarnings("JUnitMalformedDeclaration")
class PgJDBCRawSqlTest extends PgSQLJooqxTest<JDBCPool>
implements JDBCPoolHikariProvider, JDBCErrorConverterProvider, PgUseVertxType {

@Override
public boolean alreadyGenerated() {
return false;
}

@Test
void test_select_to_JsonArray(VertxTestContext ctx) {
Checkpoint cp = ctx.checkpoint();
jooqx.sqlQuery("select '[\"test\"]'::jsonb", DSLAdapter.fetchOne(DSL.field("test", String.class)))
.onSuccess(rec -> ctx.verify(() -> {
final Object value = rec.getValue(0);
Assertions.assertInstanceOf(String.class, value);
Assertions.assertEquals(new JsonArray().add("test"), new JsonArray((String) value));
cp.flag();
}))
.onFailure(ctx::failNow);
}

@Test
void test_select_to_JsonObject(VertxTestContext ctx) {
Checkpoint cp = ctx.checkpoint();
jooqx.sqlQuery("select '{\"test\": 123}'::jsonb", DSLAdapter.fetchOne(DSL.field("test", String.class)))
.onSuccess(rec -> ctx.verify(() -> {
final Object value = rec.getValue(0);
Assertions.assertInstanceOf(String.class, value);
Assertions.assertEquals(new JsonObject().put("test", 123), new JsonObject((String) value));
cp.flag();
}))
.onFailure(ctx::failNow);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
package io.github.zero88.integtest.jooqx.pg.vertx;

import org.jooq.JSONB;
import org.jooq.impl.DSL;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;

import io.github.zero88.integtest.jooqx.pg.PgUseVertxType;
import io.github.zero88.jooqx.DSLAdapter;
import io.github.zero88.jooqx.spi.pg.PgPoolProvider;
import io.github.zero88.jooqx.spi.pg.PgSQLErrorConverterProvider;
import io.github.zero88.jooqx.spi.pg.PgSQLJooqxTest;
import io.vertx.core.json.JsonArray;
import io.vertx.core.json.JsonObject;
import io.vertx.junit5.Checkpoint;
import io.vertx.junit5.VertxTestContext;
import io.vertx.pgclient.PgPool;

@SuppressWarnings("JUnitMalformedDeclaration")
class PgPoolRawSqlTest extends PgSQLJooqxTest<PgPool>
implements PgSQLErrorConverterProvider, PgPoolProvider, PgUseVertxType {

@Override
public boolean alreadyGenerated() {
return false;
}

@Test
void test_select_to_JsonArray(VertxTestContext ctx) {
Checkpoint cp = ctx.checkpoint();
jooqx.sqlQuery("select '[\"test\"]'::jsonb", DSLAdapter.fetchOne(DSL.field("test", JSONB.class)))
.onSuccess(rec -> ctx.verify(() -> {
final Object value = rec.getValue(0);
Assertions.assertInstanceOf(JsonArray.class, value);
Assertions.assertEquals(new JsonArray().add("test"), value);
cp.flag();
}))
.onFailure(ctx::failNow);
}

@Test
void test_select_to_JsonObject(VertxTestContext ctx) {
Checkpoint cp = ctx.checkpoint();
jooqx.sqlQuery("select '{\"test\": 123}'::jsonb", DSLAdapter.fetchOne(DSL.field("test", JSONB.class)))
.onSuccess(rec -> ctx.verify(() -> {
final Object value = rec.getValue(0);
Assertions.assertInstanceOf(JsonObject.class, value);
Assertions.assertEquals(new JsonObject().put("test", 123), value);
cp.flag();
}))
.onFailure(ctx::failNow);
}

}
2 changes: 1 addition & 1 deletion webdocs

0 comments on commit 3ea4a57

Please sign in to comment.