170 lines
5.7 KiB
Kotlin
170 lines
5.7 KiB
Kotlin
package fr.postgresjson
|
|
|
|
import fr.postgresjson.connexion.Paginated
|
|
import fr.postgresjson.connexion.Requester
|
|
import fr.postgresjson.entity.IdEntity
|
|
import org.junit.Assert
|
|
import org.junit.jupiter.api.Assertions.assertEquals
|
|
import org.junit.jupiter.api.Assertions.assertNotNull
|
|
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 objTest: ObjTest? = Requester(getConnextion())
|
|
.addQuery(resources)
|
|
.getQuery("Test/selectOne")
|
|
.selectOne()
|
|
|
|
assertEquals(objTest!!.id, 2)
|
|
assertEquals(objTest.name, "test")
|
|
}
|
|
|
|
@Test
|
|
fun `get function from file`() {
|
|
val resources = File(this::class.java.getResource("/sql/function").toURI())
|
|
val objTest: ObjTest? = Requester(getConnextion())
|
|
.addFunction(resources)
|
|
.getFunction("test_function")
|
|
.selectOne(listOf("test", "plip"))
|
|
|
|
assertEquals(objTest!!.id, 3)
|
|
assertEquals(objTest.name, "test")
|
|
}
|
|
|
|
@Test
|
|
fun `call exec on query`() {
|
|
val resources = File(this::class.java.getResource("/sql/query").toURI())
|
|
val result = Requester(getConnextion())
|
|
.addQuery(resources)
|
|
.getQuery("Test/selectOne")
|
|
.exec()
|
|
|
|
assertNotNull(result.getString(1))
|
|
}
|
|
|
|
@Test
|
|
fun `call exec on function`() {
|
|
val resources = File(this::class.java.getResource("/sql/function").toURI())
|
|
val result = Requester(getConnextion())
|
|
.addFunction(resources)
|
|
.getFunction("test_function")
|
|
.exec(listOf("test", "plip"))
|
|
|
|
assertNotNull(result.getString(1))
|
|
}
|
|
|
|
@Test
|
|
fun `call sendQuery on query`() {
|
|
val resources = File(this::class.java.getResource("/sql/query").toURI())
|
|
val result = Requester(getConnextion())
|
|
.addQuery(resources)
|
|
.getQuery("Test/exec")
|
|
.sendQuery()
|
|
|
|
assertEquals(0, result)
|
|
}
|
|
|
|
@Test
|
|
fun `call sendQuery on function`() {
|
|
val resources = File(this::class.java.getResource("/sql/function").toURI())
|
|
val result = Requester(getConnextion())
|
|
.addFunction(resources)
|
|
.getFunction("function_void")
|
|
.sendQuery(listOf("test"))
|
|
|
|
assertEquals(0, result)
|
|
}
|
|
|
|
@Test
|
|
fun `call selectOne on function`() {
|
|
val resources = File(this::class.java.getResource("/sql/function").toURI())
|
|
val obj: ObjTest = Requester(getConnextion())
|
|
.addFunction(resources)
|
|
.getFunction("test_function")
|
|
.selectOne(mapOf("name" to "myName"))!!
|
|
|
|
assertEquals("myName", obj.name)
|
|
}
|
|
|
|
@Test
|
|
fun `call selectOne on function with object`() {
|
|
val resources = File(this::class.java.getResource("/sql/function").toURI())
|
|
val obj2 = ObjTest("original")
|
|
val obj: ObjTest = Requester(getConnextion())
|
|
.addFunction(resources)
|
|
.getFunction("test_function_object")
|
|
.selectOne("resource" to obj2)!!
|
|
|
|
assertEquals("changedName", obj.name)
|
|
assertEquals("changedName", obj2.name)
|
|
}
|
|
|
|
@Test
|
|
fun `call selectOne on query`() {
|
|
val resources = File(this::class.java.getResource("/sql/query").toURI())
|
|
val obj: ObjTest = Requester(getConnextion())
|
|
.addQuery(resources)
|
|
.getQuery("Test/selectOneWithParameters")
|
|
.selectOne(mapOf("name" to "myName"))!!
|
|
|
|
assertEquals("myName", obj.name)
|
|
}
|
|
|
|
@Test
|
|
fun `call select (multiple) on function`() {
|
|
val resources = File(this::class.java.getResource("/sql/function").toURI())
|
|
val obj: List<ObjTest>? = Requester(getConnextion())
|
|
.addFunction(resources)
|
|
.getFunction("test_function_multiple")
|
|
.select(mapOf("name" to "myName"))
|
|
|
|
assertEquals("myName", obj!![0].name)
|
|
}
|
|
|
|
@Test
|
|
fun `call select paginated on query`() {
|
|
val resources = File(this::class.java.getResource("/sql/query").toURI())
|
|
val result: Paginated<ObjTest> = Requester(getConnextion())
|
|
.addQuery(resources)
|
|
.getQuery("Test/selectPaginated")
|
|
.select(1, 2, mapOf("name" to "ff"))
|
|
Assert.assertNotNull(result)
|
|
Assert.assertEquals(result.result[0].name, "ff")
|
|
Assert.assertEquals(result.result[1].name, "ff-2")
|
|
Assert.assertEquals(result.total, 10)
|
|
Assert.assertEquals(result.offset, 0)
|
|
}
|
|
|
|
@Test
|
|
fun `call select paginated on function`() {
|
|
val resources = File(this::class.java.getResource("/sql/function").toURI())
|
|
val result: Paginated<ObjTest> = Requester(getConnextion())
|
|
.addFunction(resources)
|
|
.getFunction("test_function_paginated")
|
|
.select(1, 2, mapOf("name" to "ff"))
|
|
Assert.assertNotNull(result)
|
|
Assert.assertEquals(result.result[0].name, "ff")
|
|
Assert.assertEquals(result.result[1].name, "ff-2")
|
|
Assert.assertEquals(result.total, 10)
|
|
Assert.assertEquals(result.offset, 0)
|
|
}
|
|
|
|
@Test
|
|
fun `call selectOne on query with extra parameter`() {
|
|
val resources = File(this::class.java.getResource("/sql/query").toURI())
|
|
val obj: ObjTest = Requester(getConnextion())
|
|
.addQuery(resources)
|
|
.getQuery("Test/selectOneWithParameters")
|
|
.selectOne(mapOf("name" to "myName")) {
|
|
assertEquals("myName", it!!.name)
|
|
Assert.assertEquals("plop", getString("other"))
|
|
}!!
|
|
|
|
assertEquals("myName", obj.name)
|
|
}
|
|
} |