Add ShadowJar compatibility and Query file can be define name with comment
Add Migration and Query definition class Add Docker DB for tests
This commit is contained in:
@@ -10,13 +10,12 @@ import org.amshove.kluent.shouldThrow
|
||||
import org.junit.jupiter.api.Assertions
|
||||
import org.junit.jupiter.api.Test
|
||||
import org.junit.jupiter.api.TestInstance
|
||||
import java.io.File
|
||||
|
||||
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
|
||||
class MigrationTest() : TestAbstract() {
|
||||
@Test
|
||||
fun `run up query`() {
|
||||
val resources = File(this::class.java.getResource("/sql/migrations").toURI())
|
||||
val resources = this::class.java.getResource("/sql/migrations").toURI()
|
||||
val m = Migrations(resources, connection)
|
||||
m.up().apply {
|
||||
this `should contain` Pair("1", Migration.Status.OK)
|
||||
@@ -28,7 +27,7 @@ class MigrationTest() : TestAbstract() {
|
||||
|
||||
@Test
|
||||
fun `migration up Query should throw error if no down`() {
|
||||
val resources = File(this::class.java.getResource("/sql/migration_without_down").toURI())
|
||||
val resources = this::class.java.getResource("/sql/migration_without_down").toURI()
|
||||
invoking {
|
||||
Migrations(resources, connection)
|
||||
} shouldThrow Migrations.DownMigrationNotDefined::class
|
||||
@@ -36,7 +35,7 @@ class MigrationTest() : TestAbstract() {
|
||||
|
||||
@Test
|
||||
fun `run forced down query`() {
|
||||
val resources = File(this::class.java.getResource("/sql/migrations").toURI())
|
||||
val resources = this::class.java.getResource("/sql/migrations").toURI()
|
||||
val m = Migrations(resources, connection)
|
||||
repeat(3) {
|
||||
m.down(true).apply {
|
||||
@@ -48,7 +47,7 @@ class MigrationTest() : TestAbstract() {
|
||||
|
||||
@Test
|
||||
fun `run dry migrations`() {
|
||||
val resources = File(this::class.java.getResource("/sql/real_migrations").toURI())
|
||||
val resources = this::class.java.getResource("/sql/real_migrations").toURI()
|
||||
Migrations(resources, connection).apply {
|
||||
runDry().size `should be equal to` 2
|
||||
}
|
||||
@@ -59,7 +58,7 @@ class MigrationTest() : TestAbstract() {
|
||||
|
||||
@Test
|
||||
fun `run dry migrations launch twice`() {
|
||||
val resources = File(this::class.java.getResource("/sql/real_migrations").toURI())
|
||||
val resources = this::class.java.getResource("/sql/real_migrations").toURI()
|
||||
Migrations(resources, connection).apply {
|
||||
runDry().size `should be equal to` 2
|
||||
runDry().size `should be equal to` 2
|
||||
@@ -68,7 +67,7 @@ class MigrationTest() : TestAbstract() {
|
||||
|
||||
@Test
|
||||
fun `run migrations`() {
|
||||
val resources = File(this::class.java.getResource("/sql/real_migrations").toURI())
|
||||
val resources = this::class.java.getResource("/sql/real_migrations").toURI()
|
||||
Migrations(resources, connection).apply {
|
||||
run().apply {
|
||||
size `should be equal to` 1
|
||||
@@ -78,8 +77,8 @@ class MigrationTest() : TestAbstract() {
|
||||
|
||||
@Test
|
||||
fun `run migrations force down`() {
|
||||
val resources = File(this::class.java.getResource("/sql/real_migrations").toURI())
|
||||
val resourcesFunctions = File(this::class.java.getResource("/sql/function/Test").toURI())
|
||||
val resources = this::class.java.getResource("/sql/real_migrations").toURI()
|
||||
val resourcesFunctions = this::class.java.getResource("/sql/function/Test").toURI()
|
||||
Migrations(listOf(resources, resourcesFunctions), connection).apply {
|
||||
up().apply {
|
||||
size `should be equal to` 6
|
||||
@@ -94,7 +93,7 @@ class MigrationTest() : TestAbstract() {
|
||||
|
||||
@Test
|
||||
fun `run functions migrations`() {
|
||||
val resources = File(this::class.java.getResource("/sql/function/Test").toURI())
|
||||
val resources = this::class.java.getResource("/sql/function/Test").toURI()
|
||||
Migrations(resources, connection).apply {
|
||||
run().size `should be equal to` 5
|
||||
}
|
||||
@@ -110,7 +109,7 @@ class MigrationTest() : TestAbstract() {
|
||||
|
||||
@Test
|
||||
fun `run functions migrations and drop if exist`() {
|
||||
val resources = File(this::class.java.getResource("/sql/function/Test1").toURI())
|
||||
val resources = this::class.java.getResource("/sql/function/Test1").toURI()
|
||||
Migrations(resources, connection).apply {
|
||||
run().size `should be equal to` 1
|
||||
}
|
||||
@@ -123,7 +122,7 @@ class MigrationTest() : TestAbstract() {
|
||||
Assertions.assertEquals(objTest!!.id, 3)
|
||||
Assertions.assertEquals(objTest.name, "test")
|
||||
|
||||
val resources2 = File(this::class.java.getResource("/sql/function/Test2").toURI())
|
||||
val resources2 = this::class.java.getResource("/sql/function/Test2").toURI()
|
||||
Migrations(resources2, connection).apply {
|
||||
run().size `should be equal to` 1
|
||||
}
|
||||
|
||||
@@ -6,17 +6,16 @@ import fr.postgresjson.entity.mutable.IdEntity
|
||||
import org.junit.Assert
|
||||
import org.junit.jupiter.api.Assertions.assertEquals
|
||||
import org.junit.jupiter.api.Test
|
||||
import java.io.File
|
||||
|
||||
class RequesterTest : TestAbstract() {
|
||||
class ObjTest(var name: String) : IdEntity(1)
|
||||
|
||||
@Test
|
||||
fun `get query from file`() {
|
||||
val resources = File(this::class.java.getResource("/sql/query").toURI())
|
||||
val resources = this::class.java.getResource("/sql/query").toURI()
|
||||
val objTest: ObjTest? = Requester(connection)
|
||||
.addQuery(resources)
|
||||
.getQuery("Test/selectOne")
|
||||
.getQuery("selectOne")
|
||||
.selectOne()
|
||||
|
||||
assertEquals(objTest!!.id, 2)
|
||||
@@ -25,7 +24,7 @@ class RequesterTest : TestAbstract() {
|
||||
|
||||
@Test
|
||||
fun `get function from file`() {
|
||||
val resources = File(this::class.java.getResource("/sql/function/Test").toURI())
|
||||
val resources = this::class.java.getResource("/sql/function/Test").toURI()
|
||||
val objTest: ObjTest? = Requester(connection)
|
||||
.addFunction(resources)
|
||||
.getFunction("test_function")
|
||||
@@ -37,10 +36,10 @@ class RequesterTest : TestAbstract() {
|
||||
|
||||
@Test
|
||||
fun `call exec on query`() {
|
||||
val resources = File(this::class.java.getResource("/sql/query").toURI())
|
||||
val resources = this::class.java.getResource("/sql/query").toURI()
|
||||
val result = Requester(connection)
|
||||
.addQuery(resources)
|
||||
.getQuery("Test/selectOne")
|
||||
.getQuery("selectOne")
|
||||
.exec()
|
||||
|
||||
assertEquals(1, result.rowsAffected)
|
||||
@@ -48,7 +47,7 @@ class RequesterTest : TestAbstract() {
|
||||
|
||||
@Test
|
||||
fun `call exec on function`() {
|
||||
val resources = File(this::class.java.getResource("/sql/function/Test").toURI())
|
||||
val resources = this::class.java.getResource("/sql/function/Test").toURI()
|
||||
val result = Requester(connection)
|
||||
.addFunction(resources)
|
||||
.getFunction("test_function")
|
||||
@@ -58,11 +57,11 @@ class RequesterTest : TestAbstract() {
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `call sendQuery on query`() {
|
||||
val resources = File(this::class.java.getResource("/sql/query").toURI())
|
||||
fun `call sendQuery on query with name`() {
|
||||
val resources = this::class.java.getResource("/sql/query").toURI()
|
||||
val result = Requester(connection)
|
||||
.addQuery(resources)
|
||||
.getQuery("Test/exec")
|
||||
.getQuery("DeleteTest")
|
||||
.sendQuery()
|
||||
|
||||
assertEquals(0, result)
|
||||
@@ -70,7 +69,7 @@ class RequesterTest : TestAbstract() {
|
||||
|
||||
@Test
|
||||
fun `call sendQuery on function`() {
|
||||
val resources = File(this::class.java.getResource("/sql/function/Test").toURI())
|
||||
val resources = this::class.java.getResource("/sql/function/Test").toURI()
|
||||
val result = Requester(connection)
|
||||
.addFunction(resources)
|
||||
.getFunction("function_void")
|
||||
@@ -81,7 +80,7 @@ class RequesterTest : TestAbstract() {
|
||||
|
||||
@Test
|
||||
fun `call selectOne on function`() {
|
||||
val resources = File(this::class.java.getResource("/sql/function/Test").toURI())
|
||||
val resources = this::class.java.getResource("/sql/function/Test").toURI()
|
||||
val obj: ObjTest = Requester(connection)
|
||||
.addFunction(resources)
|
||||
.getFunction("test_function")
|
||||
@@ -92,7 +91,7 @@ class RequesterTest : TestAbstract() {
|
||||
|
||||
@Test
|
||||
fun `call selectOne on function with object`() {
|
||||
val resources = File(this::class.java.getResource("/sql/function/Test").toURI())
|
||||
val resources = this::class.java.getResource("/sql/function/Test").toURI()
|
||||
val obj2 = ObjTest("original")
|
||||
val obj: ObjTest = Requester(connection)
|
||||
.addFunction(resources)
|
||||
@@ -105,10 +104,10 @@ class RequesterTest : TestAbstract() {
|
||||
|
||||
@Test
|
||||
fun `call selectOne on query`() {
|
||||
val resources = File(this::class.java.getResource("/sql/query").toURI())
|
||||
val resources = this::class.java.getResource("/sql/query").toURI()
|
||||
val obj: ObjTest = Requester(connection)
|
||||
.addQuery(resources)
|
||||
.getQuery("Test/selectOneWithParameters")
|
||||
.getQuery("selectOneWithParameters")
|
||||
.selectOne(mapOf("name" to "myName"))!!
|
||||
|
||||
assertEquals("myName", obj.name)
|
||||
@@ -116,7 +115,7 @@ class RequesterTest : TestAbstract() {
|
||||
|
||||
@Test
|
||||
fun `call select (multiple) on function`() {
|
||||
val resources = File(this::class.java.getResource("/sql/function/Test").toURI())
|
||||
val resources = this::class.java.getResource("/sql/function/Test").toURI()
|
||||
val obj: List<ObjTest>? = Requester(connection)
|
||||
.addFunction(resources)
|
||||
.getFunction("test_function_multiple")
|
||||
@@ -127,10 +126,10 @@ class RequesterTest : TestAbstract() {
|
||||
|
||||
@Test
|
||||
fun `call select paginated on query`() {
|
||||
val resources = File(this::class.java.getResource("/sql/query").toURI())
|
||||
val resources = this::class.java.getResource("/sql/query").toURI()
|
||||
val result: Paginated<ObjTest> = Requester(connection)
|
||||
.addQuery(resources)
|
||||
.getQuery("Test/selectPaginated")
|
||||
.getQuery("selectPaginated")
|
||||
.select(1, 2, mapOf("name" to "ff"))
|
||||
Assert.assertNotNull(result)
|
||||
Assert.assertEquals("ff", result.result[0].name)
|
||||
@@ -141,7 +140,7 @@ class RequesterTest : TestAbstract() {
|
||||
|
||||
@Test
|
||||
fun `call select paginated on function`() {
|
||||
val resources = File(this::class.java.getResource("/sql/function").toURI())
|
||||
val resources = this::class.java.getResource("/sql/function").toURI()
|
||||
val result: Paginated<ObjTest> = Requester(connection)
|
||||
.addFunction(resources)
|
||||
.getFunction("test_function_paginated")
|
||||
@@ -155,10 +154,10 @@ class RequesterTest : TestAbstract() {
|
||||
|
||||
@Test
|
||||
fun `call selectOne on query with extra parameter`() {
|
||||
val resources = File(this::class.java.getResource("/sql/query").toURI())
|
||||
val resources = this::class.java.getResource("/sql/query").toURI()
|
||||
val obj: ObjTest = Requester(connection)
|
||||
.addQuery(resources)
|
||||
.getQuery("Test/selectOneWithParameters")
|
||||
.getQuery("selectOneWithParameters")
|
||||
.selectOne(mapOf("name" to "myName")) {
|
||||
assertEquals("myName", it!!.name)
|
||||
Assert.assertEquals("plop", rows[0].getString("other"))
|
||||
|
||||
@@ -9,7 +9,7 @@ import java.io.File
|
||||
|
||||
@TestInstance(PER_CLASS)
|
||||
abstract class TestAbstract {
|
||||
protected val connection = Connection(database = "test_json", username = "test", password = "test")
|
||||
protected val connection = Connection(database = "json_test", username = "test", password = "test", port = 5555)
|
||||
|
||||
@BeforeEach
|
||||
fun beforeAll() {
|
||||
|
||||
@@ -1 +1,2 @@
|
||||
-- name: DeleteTest
|
||||
delete FROM test where 2038538 = 2;
|
||||
Reference in New Issue
Block a user