Drop function if already exists and conflict
This commit is contained in:
@@ -79,7 +79,7 @@ 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").toURI())
|
||||
val resourcesFunctions = File(this::class.java.getResource("/sql/function/Test").toURI())
|
||||
Migrations(listOf(resources, resourcesFunctions), connection).apply {
|
||||
up().apply {
|
||||
size `should be equal to` 6
|
||||
@@ -94,7 +94,7 @@ class MigrationTest(): TestAbstract() {
|
||||
|
||||
@Test
|
||||
fun `run functions migrations`() {
|
||||
val resources = File(this::class.java.getResource("/sql/function").toURI())
|
||||
val resources = File(this::class.java.getResource("/sql/function/Test").toURI())
|
||||
Migrations(resources, connection).apply {
|
||||
run().size `should be equal to` 5
|
||||
}
|
||||
@@ -107,4 +107,26 @@ class MigrationTest(): TestAbstract() {
|
||||
Assertions.assertEquals(objTest!!.id, 3)
|
||||
Assertions.assertEquals(objTest.name, "test")
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `run functions migrations and drop if exist`() {
|
||||
val resources = File(this::class.java.getResource("/sql/function/Test1").toURI())
|
||||
Migrations(resources, connection).apply {
|
||||
run().size `should be equal to` 1
|
||||
}
|
||||
|
||||
val objTest: RequesterTest.ObjTest? = Requester(connection)
|
||||
.addFunction(resources)
|
||||
.getFunction("test_function_duplicate")
|
||||
.selectOne(listOf("test"))
|
||||
|
||||
Assertions.assertEquals(objTest!!.id, 3)
|
||||
Assertions.assertEquals(objTest.name, "test")
|
||||
|
||||
|
||||
val resources2 = File(this::class.java.getResource("/sql/function/Test2").toURI())
|
||||
Migrations(resources2, connection).apply {
|
||||
run().size `should be equal to` 1
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -25,7 +25,7 @@ class RequesterTest: TestAbstract() {
|
||||
|
||||
@Test
|
||||
fun `get function from file`() {
|
||||
val resources = File(this::class.java.getResource("/sql/function").toURI())
|
||||
val resources = File(this::class.java.getResource("/sql/function/Test").toURI())
|
||||
val objTest: ObjTest? = Requester(connection)
|
||||
.addFunction(resources)
|
||||
.getFunction("test_function")
|
||||
@@ -48,7 +48,7 @@ class RequesterTest: TestAbstract() {
|
||||
|
||||
@Test
|
||||
fun `call exec on function`() {
|
||||
val resources = File(this::class.java.getResource("/sql/function").toURI())
|
||||
val resources = File(this::class.java.getResource("/sql/function/Test").toURI())
|
||||
val result = Requester(connection)
|
||||
.addFunction(resources)
|
||||
.getFunction("test_function")
|
||||
@@ -70,7 +70,7 @@ class RequesterTest: TestAbstract() {
|
||||
|
||||
@Test
|
||||
fun `call sendQuery on function`() {
|
||||
val resources = File(this::class.java.getResource("/sql/function").toURI())
|
||||
val resources = File(this::class.java.getResource("/sql/function/Test").toURI())
|
||||
val result = Requester(connection)
|
||||
.addFunction(resources)
|
||||
.getFunction("function_void")
|
||||
@@ -81,7 +81,7 @@ class RequesterTest: TestAbstract() {
|
||||
|
||||
@Test
|
||||
fun `call selectOne on function`() {
|
||||
val resources = File(this::class.java.getResource("/sql/function").toURI())
|
||||
val resources = File(this::class.java.getResource("/sql/function/Test").toURI())
|
||||
val obj: ObjTest = Requester(connection)
|
||||
.addFunction(resources)
|
||||
.getFunction("test_function")
|
||||
@@ -92,7 +92,7 @@ class RequesterTest: TestAbstract() {
|
||||
|
||||
@Test
|
||||
fun `call selectOne on function with object`() {
|
||||
val resources = File(this::class.java.getResource("/sql/function").toURI())
|
||||
val resources = File(this::class.java.getResource("/sql/function/Test").toURI())
|
||||
val obj2 = ObjTest("original")
|
||||
val obj: ObjTest = Requester(connection)
|
||||
.addFunction(resources)
|
||||
@@ -116,7 +116,7 @@ class RequesterTest: TestAbstract() {
|
||||
|
||||
@Test
|
||||
fun `call select (multiple) on function`() {
|
||||
val resources = File(this::class.java.getResource("/sql/function").toURI())
|
||||
val resources = File(this::class.java.getResource("/sql/function/Test").toURI())
|
||||
val obj: List<ObjTest>? = Requester(connection)
|
||||
.addFunction(resources)
|
||||
.getFunction("test_function_multiple")
|
||||
|
||||
@@ -9,7 +9,7 @@ import java.io.File
|
||||
|
||||
@TestInstance(PER_CLASS)
|
||||
abstract class TestAbstract {
|
||||
protected val connection = Connection(database = "test", username = "test", password = "test")
|
||||
protected val connection = Connection(database = "test_json", username = "test", password = "test")
|
||||
|
||||
@BeforeEach
|
||||
fun beforeAll() {
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
CREATE OR REPLACE FUNCTION test_function_duplicate (name text default 'plop', out result json)
|
||||
LANGUAGE plpgsql
|
||||
AS
|
||||
$$
|
||||
BEGIN
|
||||
result = json_build_object('id', 3, 'name', name);
|
||||
END;
|
||||
$$
|
||||
@@ -0,0 +1,8 @@
|
||||
CREATE OR REPLACE FUNCTION test_function_duplicate (name text default 'plop') returns text
|
||||
LANGUAGE plpgsql
|
||||
AS
|
||||
$$
|
||||
BEGIN
|
||||
return name;
|
||||
END;
|
||||
$$
|
||||
Reference in New Issue
Block a user