Skip to content

Commit

Permalink
Migrate tests from DynaTest to JUnit5
Browse files Browse the repository at this point in the history
  • Loading branch information
mvysny committed Jan 31, 2025
1 parent f5ec703 commit 9d55a57
Showing 1 changed file with 2 additions and 53 deletions.
55 changes: 2 additions & 53 deletions src/test/kotlin/com/github/vokorm/Databases.kt
Original file line number Diff line number Diff line change
@@ -1,19 +1,12 @@
package com.github.vokorm

import com.github.mvysny.dynatest.DynaNodeGroup
import com.github.mvysny.dynatest.DynaTestDsl
import com.gitlab.mvysny.jdbiorm.*
import com.gitlab.mvysny.jdbiorm.Dao
import com.gitlab.mvysny.jdbiorm.JdbiOrm
import com.gitlab.mvysny.jdbiorm.quirks.DatabaseVariant
import com.zaxxer.hikari.HikariConfig
import com.zaxxer.hikari.HikariDataSource
import org.intellij.lang.annotations.Language
import org.jdbi.v3.core.mapper.reflect.ColumnName
import org.testcontainers.DockerClientFactory
import org.testcontainers.containers.CockroachContainer
import org.testcontainers.containers.MSSQLServerContainer
import org.testcontainers.containers.MariaDBContainer
import org.testcontainers.containers.MySQLContainer
import org.testcontainers.containers.PostgreSQLContainer
import java.util.*

object DatabaseVersions {
Expand Down Expand Up @@ -66,50 +59,6 @@ data class TypeMappingEntity(override var id: Long? = null,
companion object : Dao<TypeMappingEntity, Long>(TypeMappingEntity::class.java)
}

@DynaTestDsl
private fun DynaNodeGroup.usingDockerizedPosgresql() {
check(DockerClientFactory.instance().isDockerAvailable()) { "Docker not available" }
lateinit var container: PostgreSQLContainer<*>
beforeGroup {
container = PostgreSQLContainer("postgres:${DatabaseVersions.postgres}")
container.start()
}
beforeGroup {
hikari {
minimumIdle = 0
maximumPoolSize = 30
// stringtype=unspecified : see https://github.com/mvysny/vok-orm/issues/12 for more details.
jdbcUrl = container.jdbcUrl.removeSuffix("loggerLevel=OFF") + "stringtype=unspecified"
username = container.username
password = container.password
}
db {
ddl("""create table if not exists Test (
id bigserial primary key,
name varchar(400) not null,
age integer not null,
dateOfBirth date,
created timestamp,
modified timestamp,
alive boolean,
maritalStatus varchar(200)
)""")
ddl("""CREATE INDEX pgweb_idx ON Test USING GIN (to_tsvector('english', name));""")
ddl("""create table if not exists EntityWithAliasedId(myid bigserial primary key, name varchar(400) not null)""")
ddl("""create table if not exists NaturalPerson(id varchar(10) primary key, name varchar(400) not null, bytes bytea not null)""")
ddl("""create table if not exists LogRecord(id UUID primary key, text varchar(400) not null)""")
ddl("""CREATE TYPE marital_status AS ENUM ('Single', 'Married', 'Widowed', 'Divorced')""")
ddl("""CREATE TABLE IF NOT EXISTS TypeMappingEntity(id bigserial primary key, enumTest marital_status)""")
}
}

afterGroup { JdbiOrm.destroy() }
afterGroup { container.stop() }

beforeEach { clearDb() }
afterEach { clearDb() }
}

fun hikari(block: HikariConfig.() -> Unit) {
JdbiOrm.databaseVariant = null
JdbiOrm.setDataSource(HikariDataSource(HikariConfig().apply(block)))
Expand Down

0 comments on commit 9d55a57

Please sign in to comment.