From c2c8b91dc5f7d3bc5d20d5475203601bc67af9f6 Mon Sep 17 00:00:00 2001 From: Fabrice Lecomte Date: Tue, 15 Dec 2020 14:15:11 +0100 Subject: [PATCH] Remove Mutable entities --- .idea/runConfigurations/Check.xml | 1 + docker-compose.yml | 10 -- ...mutableEntity.kt => EntitiesInterfaces.kt} | 25 +++- .../entity/mutable/MutableEntity.kt | 137 ------------------ .../postgresjson/migration/MigrationScript.kt | 2 +- .../fr/postgresjson/migration/Migrations.kt | 2 +- .../kotlin/fr/postgresjson/ConnectionTest.kt | 32 ++-- src/test/kotlin/fr/postgresjson/EntityTest.kt | 10 +- .../kotlin/fr/postgresjson/MigrationTest.kt | 5 +- .../kotlin/fr/postgresjson/RequesterTest.kt | 9 +- .../kotlin/fr/postgresjson/SerializerTest.kt | 14 +- src/test/resources/fixtures/init.sql | 26 ++-- .../sql/function/Test/function_test.sql | 2 +- .../function/Test/function_test_object.sql | 2 +- .../function/Test/test_function_multiple.sql | 4 +- .../function/Test/test_function_paginated.sql | 4 +- .../Test1/function_test_duplicate.sql | 2 +- .../resources/sql/query/Test/selectOne.sql | 2 +- .../query/Test/selectOneWithParameters.sql | 2 +- .../sql/query/Test/selectPaginated.sql | 4 +- 20 files changed, 85 insertions(+), 210 deletions(-) rename src/main/kotlin/fr/postgresjson/entity/{immutable/ImmutableEntity.kt => EntitiesInterfaces.kt} (80%) delete mode 100644 src/main/kotlin/fr/postgresjson/entity/mutable/MutableEntity.kt diff --git a/.idea/runConfigurations/Check.xml b/.idea/runConfigurations/Check.xml index 9faa42d..d7fa03f 100644 --- a/.idea/runConfigurations/Check.xml +++ b/.idea/runConfigurations/Check.xml @@ -1,5 +1,6 @@ + diff --git a/docker-compose.yml b/docker-compose.yml index 844f018..09dc326 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -13,13 +13,3 @@ services: POSTGRES_DB: json_test POSTGRES_USER: test POSTGRES_PASSWORD: test - - pgadmin: - container_name: pgadmin4_json - image: dpage/pgadmin4 - restart: always - ports: - - 8585:80 - environment: - PGADMIN_DEFAULT_EMAIL: rusk23@gmail.com - PGADMIN_DEFAULT_PASSWORD: azerty \ No newline at end of file diff --git a/src/main/kotlin/fr/postgresjson/entity/immutable/ImmutableEntity.kt b/src/main/kotlin/fr/postgresjson/entity/EntitiesInterfaces.kt similarity index 80% rename from src/main/kotlin/fr/postgresjson/entity/immutable/ImmutableEntity.kt rename to src/main/kotlin/fr/postgresjson/entity/EntitiesInterfaces.kt index 83529cc..4110e1a 100644 --- a/src/main/kotlin/fr/postgresjson/entity/immutable/ImmutableEntity.kt +++ b/src/main/kotlin/fr/postgresjson/entity/EntitiesInterfaces.kt @@ -1,6 +1,5 @@ -package fr.postgresjson.entity.immutable +package fr.postgresjson.entity -import fr.postgresjson.entity.EntityI import org.joda.time.DateTime import java.util.* @@ -94,6 +93,18 @@ class EntityUpdatedImp( ) : EntityUpdatedBy, EntityUpdatedAt by EntityUpdatedAtImp(updatedAt) +/* Published */ +interface Published { + val publishedAt: DateTime? + val publishedBy: UserT? +} + +class EntityPublishedImp( + override val publishedBy: UserT? +) : Published { + override val publishedAt: DateTime? = null +} + /* Implementation */ abstract class EntityImp( updatedBy: UserT, @@ -104,4 +115,12 @@ abstract class EntityImp( EntityDeletedAt by EntityDeletedAtImp(), EntityCreatedBy by EntityCreatedByImp(updatedBy), EntityUpdatedBy by EntityUpdatedByImp(updatedBy), - EntityDeletedBy by EntityDeletedByImp(updatedBy) \ No newline at end of file + EntityDeletedBy by EntityDeletedByImp(updatedBy) + +abstract class UuidEntityExtended( + updatedBy: UserT, + publishedBy: UserT? +) : + EntityImp(updatedBy), + EntityVersioning by UuidEntityVersioning(0), + Published by EntityPublishedImp(publishedBy) \ No newline at end of file diff --git a/src/main/kotlin/fr/postgresjson/entity/mutable/MutableEntity.kt b/src/main/kotlin/fr/postgresjson/entity/mutable/MutableEntity.kt deleted file mode 100644 index ea2c74d..0000000 --- a/src/main/kotlin/fr/postgresjson/entity/mutable/MutableEntity.kt +++ /dev/null @@ -1,137 +0,0 @@ -package fr.postgresjson.entity.mutable - -import fr.postgresjson.entity.EntityI -import org.joda.time.DateTime -import java.util.* - -interface EntityRefI : EntityI { - var id: T? -} - -interface UuidEntityI : EntityRefI { - override var id: UUID? -} - -interface IdEntityI : EntityRefI { - override var id: Int? -} - -abstract class Entity(override var id: T? = null) : EntityRefI -open class UuidEntity(id: UUID? = null) : UuidEntityI, Entity(id ?: UUID.randomUUID()) -open class IdEntity(override var id: Int? = null) : IdEntityI, Entity(id) - -/* Version */ -interface EntityVersioning { - var versionId: ID - var versionNumber: NUMBER? -} - -class UuidEntityVersioning( - override var versionNumber: Int? = null, - versionId: UUID? = null -) : EntityVersioning { - override var versionId: UUID = versionId ?: UUID.randomUUID() -} - -/* Dates */ -interface EntityCreatedAt { - var createdAt: DateTime? -} - -interface EntityUpdatedAt { - var updatedAt: DateTime? -} - -interface EntityDeletedAt { - var deletedAt: DateTime? - fun isDeleted(): Boolean { - val deletedAt = deletedAt - return deletedAt != null && deletedAt < DateTime.now() - } -} - -class EntityCreatedAtImp : EntityCreatedAt { - override var createdAt: DateTime? = null -} - -class EntityUpdatedAtImp : EntityUpdatedAt { - override var updatedAt: DateTime? = null -} - -class EntityDeletedAtImp : EntityDeletedAt { - override var deletedAt: DateTime? = null -} - -/* Author */ -interface EntityCreatedBy { - var createdBy: T? -} - -interface EntityUpdatedBy { - var updatedBy: T? -} - -interface EntityDeletedBy { - var deletedBy: T? -} - -class EntityCreatedByImp( - override var createdBy: UserT? -) : EntityCreatedBy - -class EntityUpdatedByImp( - override var updatedBy: UserT? -) : EntityUpdatedBy - -class EntityDeletedByImp( - override var deletedBy: UserT? -) : EntityDeletedBy - -/* Mixed */ -class EntityDeletedImp( - override var deletedBy: UserT? = null -) : EntityDeletedBy, - EntityDeletedAt by EntityDeletedAtImp() - -class EntityUpdatedImp( - override var updatedAt: DateTime? = null, - override var updatedBy: UserT? = null -) : EntityUpdatedBy, - EntityUpdatedAt by EntityUpdatedAtImp() - -class EntityCreatedImp( - override var createdAt: DateTime? = null, - override var createdBy: UserT? = null -) : EntityCreatedBy, - EntityCreatedAt by EntityCreatedAtImp() - -/* Published */ -interface Published { - var publishedAt: DateTime? - var publishedBy: UserT? -} - -class EntityPublishedImp( - override var publishedBy: UserT? -) : Published { - override var publishedAt: DateTime? = null -} - -/* Implementation */ -abstract class EntityImp( - updatedBy: UserT? -) : Entity(), - EntityCreatedAt by EntityCreatedAtImp(), - EntityUpdatedAt by EntityUpdatedAtImp(), - EntityDeletedAt by EntityDeletedAtImp(), - EntityCreatedBy by EntityCreatedByImp(updatedBy), - EntityUpdatedBy by EntityUpdatedByImp(updatedBy), - EntityDeletedBy by EntityDeletedByImp(updatedBy) - -abstract class UuidEntityExtended( - updatedBy: UserT?, - publishedBy: UserT? -) : - EntityImp(updatedBy), - EntityVersioning by UuidEntityVersioning(), - Published by EntityPublishedImp(publishedBy) diff --git a/src/main/kotlin/fr/postgresjson/migration/MigrationScript.kt b/src/main/kotlin/fr/postgresjson/migration/MigrationScript.kt index c33243c..43664d5 100644 --- a/src/main/kotlin/fr/postgresjson/migration/MigrationScript.kt +++ b/src/main/kotlin/fr/postgresjson/migration/MigrationScript.kt @@ -1,7 +1,7 @@ package fr.postgresjson.migration import fr.postgresjson.connexion.Connection -import fr.postgresjson.entity.mutable.Entity +import fr.postgresjson.entity.Entity import fr.postgresjson.migration.Migration.Action import java.util.* diff --git a/src/main/kotlin/fr/postgresjson/migration/Migrations.kt b/src/main/kotlin/fr/postgresjson/migration/Migrations.kt index 1dd902c..58ad53a 100644 --- a/src/main/kotlin/fr/postgresjson/migration/Migrations.kt +++ b/src/main/kotlin/fr/postgresjson/migration/Migrations.kt @@ -3,7 +3,7 @@ package fr.postgresjson.migration import com.fasterxml.jackson.core.type.TypeReference import fr.postgresjson.connexion.Connection import fr.postgresjson.definition.Migration as DefinitionMigration -import fr.postgresjson.entity.mutable.Entity +import fr.postgresjson.entity.Entity import fr.postgresjson.migration.Migration.Action import fr.postgresjson.migration.Migration.Status import fr.postgresjson.utils.LoggerDelegate diff --git a/src/test/kotlin/fr/postgresjson/ConnectionTest.kt b/src/test/kotlin/fr/postgresjson/ConnectionTest.kt index d9be2fa..fd98ec7 100644 --- a/src/test/kotlin/fr/postgresjson/ConnectionTest.kt +++ b/src/test/kotlin/fr/postgresjson/ConnectionTest.kt @@ -1,26 +1,27 @@ package fr.postgresjson import fr.postgresjson.connexion.Paginated -import fr.postgresjson.entity.mutable.IdEntity +import fr.postgresjson.entity.UuidEntity import fr.postgresjson.entity.Parameter import org.junit.Assert.* import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Test import org.junit.jupiter.api.TestInstance +import java.util.* @TestInstance(TestInstance.Lifecycle.PER_CLASS) class ConnectionTest() : TestAbstract() { - private class ObjTest(var name: String) : IdEntity() - private class ObjTest2(var title: String, var test: ObjTest?) : IdEntity() - private class ObjTest3(var first: String, var seconde: String, var third: Int) : IdEntity() - private class ObjTestWithParameterObject(var first: ParameterObject, var seconde: ParameterObject) : IdEntity() + private class ObjTest(val name: String, id: UUID = UUID.fromString("2c0243ed-ff4d-4b9f-a52b-e38c71b0ed00")) : UuidEntity(id) + private class ObjTest2(val title: String, var test: ObjTest?) : UuidEntity() + private class ObjTest3(val first: String, var seconde: String, var third: Int) : UuidEntity() + private class ObjTestWithParameterObject(var first: ParameterObject, var seconde: ParameterObject) : UuidEntity() private class ParameterObject(var third: String) : Parameter @Test fun getObject() { val obj: ObjTest? = connection.selectOne("select to_json(a) from test a limit 1") assertTrue(obj is ObjTest) - assertTrue(obj!!.id == 1) + assertTrue(obj!!.id == UUID.fromString("1e5f5d41-6d14-4007-897b-0ed2616bec96")) } @Test @@ -39,32 +40,31 @@ class ConnectionTest() : TestAbstract() { ) assertNotNull(objs) assertEquals(objs.size, 2) - assertEquals(objs[0].id, 1) - assertEquals(objs[0].test!!.id, 1) + assertEquals(objs[0].id, UUID.fromString("1e5f5d41-6d14-4007-897b-0ed2616bec96")) + assertEquals(objs[0].test!!.id, UUID.fromString("1e5f5d41-6d14-4007-897b-0ed2616bec96")) } @Test fun callRequestWithArgs() { - val result: ObjTest? = connection.selectOne("select json_build_object('id', 1, 'name', ?::text)", listOf("myName")) + val result: ObjTest? = connection.selectOne("select json_build_object('id', '2c0243ed-ff4d-4b9f-a52b-e38c71b0ed00', 'name', ?::text)", listOf("myName")) assertNotNull(result) assertEquals("myName", result!!.name) } @Test fun callRequestWithArgsEntity() { - val o = ObjTest("myName") - o.id = 88 - val obj: ObjTest? = connection.selectOne("select json_build_object('id', id, 'name', name) FROM json_to_record(?::json) as o(id int, name text);", listOf(o)) + val o = ObjTest("myName", id = UUID.fromString("2c0243ed-ff4d-4b9f-a52b-e38c71b0ed00")) + val obj: ObjTest? = connection.selectOne("select json_build_object('id', id, 'name', name) FROM json_to_record(?::json) as o(id uuid, name text);", listOf(o)) assertNotNull(obj) assertTrue(obj is ObjTest) - assertEquals(obj!!.id, 88) + assertEquals(obj!!.id, UUID.fromString("2c0243ed-ff4d-4b9f-a52b-e38c71b0ed00")) assertEquals(obj.name, "myName") } @Test fun callExec() { val o = ObjTest("myName") - val result = connection.exec("select json_build_object('id', 1, 'name', ?::json->>'name')", listOf(o)) + val result = connection.exec("select json_build_object('id', '2c0243ed-ff4d-4b9f-a52b-e38c71b0ed00', 'name', ?::json->>'name')", listOf(o)) Assertions.assertEquals(1, result.rowsAffected) } @@ -141,8 +141,8 @@ class ConnectionTest() : TestAbstract() { val result: Paginated = connection.select( """ SELECT json_build_array( - json_build_object('id', 3, 'name', :name::text), - json_build_object('id', 4, 'name', :name::text || '-2') + json_build_object('id', '417aaa7e-7bc6-49b7-9fe8-6c8433b3f430', 'name', :name::text), + json_build_object('id', 'abd46e7a-e749-4ce4-8361-e7b64da89da6', 'name', :name::text || '-2') ), 10 as total LIMIT :limit OFFSET :offset """.trimIndent(), diff --git a/src/test/kotlin/fr/postgresjson/EntityTest.kt b/src/test/kotlin/fr/postgresjson/EntityTest.kt index 4452c4c..976ad79 100644 --- a/src/test/kotlin/fr/postgresjson/EntityTest.kt +++ b/src/test/kotlin/fr/postgresjson/EntityTest.kt @@ -1,15 +1,15 @@ package fr.postgresjson -import fr.postgresjson.entity.EntityI -import fr.postgresjson.entity.mutable.* +import fr.postgresjson.entity.* import org.junit.jupiter.api.Assertions.assertTrue import org.junit.jupiter.api.Test import org.junit.jupiter.api.TestInstance +import java.util.* @TestInstance(TestInstance.Lifecycle.PER_CLASS) class EntityTest() { - private class User(id: Int?) : Entity(id) - private class ObjTest(var name: String) : UuidEntityExtended(User(1), User(2)) + private class User(id: UUID = UUID.randomUUID()) : Entity(id) + private class ObjTest(var name: String) : UuidEntityExtended(User(), User()) @Test fun getObject() { @@ -17,7 +17,7 @@ class EntityTest() { assertTrue(obj is ObjTest) assertTrue(obj is UuidEntityExtended) assertTrue(obj is EntityI) - assertTrue(obj is Entity) + assertTrue(obj is Entity) assertTrue(obj is Published) assertTrue(obj is EntityCreatedBy) assertTrue(obj is EntityUpdatedBy) diff --git a/src/test/kotlin/fr/postgresjson/MigrationTest.kt b/src/test/kotlin/fr/postgresjson/MigrationTest.kt index 2f5daa3..5426f39 100644 --- a/src/test/kotlin/fr/postgresjson/MigrationTest.kt +++ b/src/test/kotlin/fr/postgresjson/MigrationTest.kt @@ -10,6 +10,7 @@ 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.util.* @TestInstance(TestInstance.Lifecycle.PER_CLASS) class MigrationTest() : TestAbstract() { @@ -103,7 +104,7 @@ class MigrationTest() : TestAbstract() { .getFunction("test_function") .selectOne(listOf("test", "plip")) - Assertions.assertEquals(objTest!!.id, 3) + Assertions.assertEquals(objTest!!.id, UUID.fromString("457daad5-4f1b-4eb7-80ec-6882adb8cc7d")) Assertions.assertEquals(objTest.name, "test") } @@ -119,7 +120,7 @@ class MigrationTest() : TestAbstract() { .getFunction("test_function_duplicate") .selectOne(listOf("test")) - Assertions.assertEquals(objTest!!.id, 3) + Assertions.assertEquals(objTest!!.id, UUID.fromString("457daad5-4f1b-4eb7-80ec-6882adb8cc7d")) Assertions.assertEquals(objTest.name, "test") val resources2 = this::class.java.getResource("/sql/function/Test2").toURI() diff --git a/src/test/kotlin/fr/postgresjson/RequesterTest.kt b/src/test/kotlin/fr/postgresjson/RequesterTest.kt index 66021f4..ed5e55d 100644 --- a/src/test/kotlin/fr/postgresjson/RequesterTest.kt +++ b/src/test/kotlin/fr/postgresjson/RequesterTest.kt @@ -2,13 +2,14 @@ package fr.postgresjson import fr.postgresjson.connexion.Paginated import fr.postgresjson.connexion.Requester -import fr.postgresjson.entity.mutable.IdEntity +import fr.postgresjson.entity.UuidEntity import org.junit.Assert import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Test +import java.util.* class RequesterTest : TestAbstract() { - class ObjTest(var name: String) : IdEntity(1) + class ObjTest(var name: String, id: UUID = UUID.fromString("5623d902-3067-42f3-bfd9-095dbb12c29f")) : UuidEntity(id) @Test fun `get query from file`() { @@ -18,7 +19,7 @@ class RequesterTest : TestAbstract() { .getQuery("selectOne") .selectOne() - assertEquals(objTest!!.id, 2) + assertEquals(objTest!!.id, UUID.fromString("829b1a29-5db8-47f9-9562-961c561ac528")) assertEquals(objTest.name, "test") } @@ -30,7 +31,7 @@ class RequesterTest : TestAbstract() { .getFunction("test_function") .selectOne(listOf("test", "plip")) - assertEquals(objTest!!.id, 3) + assertEquals(objTest!!.id, UUID.fromString("457daad5-4f1b-4eb7-80ec-6882adb8cc7d")) assertEquals(objTest.name, "test") } diff --git a/src/test/kotlin/fr/postgresjson/SerializerTest.kt b/src/test/kotlin/fr/postgresjson/SerializerTest.kt index dac2d2b..565c4db 100644 --- a/src/test/kotlin/fr/postgresjson/SerializerTest.kt +++ b/src/test/kotlin/fr/postgresjson/SerializerTest.kt @@ -1,6 +1,6 @@ package fr.postgresjson -import fr.postgresjson.entity.mutable.IdEntity +import fr.postgresjson.entity.UuidEntity import fr.postgresjson.serializer.Serializer import fr.postgresjson.serializer.deserialize import fr.postgresjson.serializer.serialize @@ -10,23 +10,23 @@ import org.junit.jupiter.api.Assertions.assertTrue import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test import org.junit.jupiter.api.TestInstance +import java.util.* @TestInstance(TestInstance.Lifecycle.PER_CLASS) internal class SerializerTest { - private class ObjTest(var val1: String, var val2: Int) : IdEntity(1) - private class ObjTestDate(var val1: DateTime) : IdEntity(2) + private class ObjTest(var val1: String, var val2: Int, id: UUID = UUID.fromString("1e5f5d41-6d14-4007-897b-0ed2616bec96")) : UuidEntity(id) + private class ObjTestDate(var val1: DateTime, id: UUID = UUID.fromString("829b1a29-5db8-47f9-9562-961c561ac528")) : UuidEntity(id) private val serializer = Serializer() - private val objSerialized: String = """{"val1":"plop","val2":123,"id":2}""" - private val objSerializedWithExtra: String = """{"val1":"plop","val2":123,"id":2,"toto":"tata"}""" + private val objSerialized: String = """{"val1":"plop","val2":123,"id":"829b1a29-5db8-47f9-9562-961c561ac528"}""" + private val objSerializedWithExtra: String = """{"val1":"plop","val2":123,"id":"829b1a29-5db8-47f9-9562-961c561ac528","toto":"tata"}""" private val objSerializedUpdate = """{"val1":"update","val2":123}""" private lateinit var obj: ObjTest @BeforeEach fun before() { - obj = ObjTest("plop", 123) - obj.id = 2 + obj = ObjTest("plop", 123, UUID.fromString("829b1a29-5db8-47f9-9562-961c561ac528")) } @Test diff --git a/src/test/resources/fixtures/init.sql b/src/test/resources/fixtures/init.sql index 04dc61e..f6ce3d9 100644 --- a/src/test/resources/fixtures/init.sql +++ b/src/test/resources/fixtures/init.sql @@ -8,7 +8,7 @@ create schema if not exists public; create table if not exists test ( - id serial not null + id uuid not null constraint test_pk primary key, name text @@ -16,24 +16,24 @@ create table if not exists test create table if not exists test2 ( - id serial not null, + id uuid not null, title text, - test_id integer + test_id uuid constraint test2_test_id_fk references test ); -INSERT INTO test (id, name) VALUES (1, 'plop') ON CONFLICT DO NOTHING; -INSERT INTO test2 (id, title, test_id) VALUES (1, 'plop', 1) ON CONFLICT DO NOTHING; -INSERT INTO test2 (id, title, test_id) VALUES (2, 'plip', 1) ON CONFLICT DO NOTHING; -INSERT INTO test2 (id, title, test_id) VALUES (3, 'ttt', null) ON CONFLICT DO NOTHING; +INSERT INTO test (id, name) VALUES ('1e5f5d41-6d14-4007-897b-0ed2616bec96', 'plop') ON CONFLICT DO NOTHING; +INSERT INTO test2 (id, title, test_id) VALUES ('1e5f5d41-6d14-4007-897b-0ed2616bec96', 'plop', '1e5f5d41-6d14-4007-897b-0ed2616bec96') ON CONFLICT DO NOTHING; +INSERT INTO test2 (id, title, test_id) VALUES ('829b1a29-5db8-47f9-9562-961c561ac528', 'plip', '1e5f5d41-6d14-4007-897b-0ed2616bec96') ON CONFLICT DO NOTHING; +INSERT INTO test2 (id, title, test_id) VALUES ('457daad5-4f1b-4eb7-80ec-6882adb8cc7d', 'ttt', null) ON CONFLICT DO NOTHING; CREATE OR REPLACE FUNCTION test_function (name text default 'plop', IN hi text default 'hello', out result json) LANGUAGE plpgsql AS $$ BEGIN - result = json_build_object('id', 3, 'name', name); + result = json_build_object('id', '457daad5-4f1b-4eb7-80ec-6882adb8cc7d', 'name', name); END; $$; @@ -44,8 +44,8 @@ AS $$ BEGIN result = json_build_array( - json_build_object('id', 3, 'name', name), - json_build_object('id', 4, 'name', hi) + json_build_object('id', '457daad5-4f1b-4eb7-80ec-6882adb8cc7d', 'name', name), + json_build_object('id', '8d20abb0-7f77-4b6c-9991-44acd3c88faa', 'name', hi) ); END; $$; @@ -56,8 +56,8 @@ AS $$ BEGIN SELECT json_build_array( - json_build_object('id', 3, 'name', name::text), - json_build_object('id', 4, 'name', name::text || '-2') + json_build_object('id', '457daad5-4f1b-4eb7-80ec-6882adb8cc7d', 'name', name::text), + json_build_object('id', '8d20abb0-7f77-4b6c-9991-44acd3c88faa', 'name', name::text || '-2') ), 10 INTO result, total @@ -70,7 +70,7 @@ CREATE OR REPLACE FUNCTION test_function_object (inout resource json) AS $$ BEGIN - resource = json_build_object('id', 1, 'name', 'changedName'); + resource = json_build_object('id', '1e5f5d41-6d14-4007-897b-0ed2616bec96', 'name', 'changedName'); END; $$; diff --git a/src/test/resources/sql/function/Test/function_test.sql b/src/test/resources/sql/function/Test/function_test.sql index 3e3698d..ba96a77 100644 --- a/src/test/resources/sql/function/Test/function_test.sql +++ b/src/test/resources/sql/function/Test/function_test.sql @@ -3,6 +3,6 @@ LANGUAGE plpgsql AS $$ BEGIN - result = json_build_object('id', 3, 'name', name); + result = json_build_object('id', '457daad5-4f1b-4eb7-80ec-6882adb8cc7d', 'name', name); END; $$ \ No newline at end of file diff --git a/src/test/resources/sql/function/Test/function_test_object.sql b/src/test/resources/sql/function/Test/function_test_object.sql index d176b96..1932450 100644 --- a/src/test/resources/sql/function/Test/function_test_object.sql +++ b/src/test/resources/sql/function/Test/function_test_object.sql @@ -3,6 +3,6 @@ LANGUAGE plpgsql AS $$ BEGIN - resource = json_build_object('id', 1, 'name', 'changedName'); + resource = json_build_object('id', '1e5f5d41-6d14-4007-897b-0ed2616bec96', 'name', 'changedName'); END; $$ \ No newline at end of file diff --git a/src/test/resources/sql/function/Test/test_function_multiple.sql b/src/test/resources/sql/function/Test/test_function_multiple.sql index 5f94730..8f62f36 100644 --- a/src/test/resources/sql/function/Test/test_function_multiple.sql +++ b/src/test/resources/sql/function/Test/test_function_multiple.sql @@ -4,8 +4,8 @@ AS $$ BEGIN result = json_build_array( - json_build_object('id', 3, 'name', name), - json_build_object('id', 4, 'name', hi) + json_build_object('id', '457daad5-4f1b-4eb7-80ec-6882adb8cc7d', 'name', name), + json_build_object('id', '8d20abb0-7f77-4b6c-9991-44acd3c88faa', 'name', hi) ); END; $$ \ No newline at end of file diff --git a/src/test/resources/sql/function/Test/test_function_paginated.sql b/src/test/resources/sql/function/Test/test_function_paginated.sql index 68f8097..a34c525 100644 --- a/src/test/resources/sql/function/Test/test_function_paginated.sql +++ b/src/test/resources/sql/function/Test/test_function_paginated.sql @@ -4,8 +4,8 @@ AS $$ BEGIN SELECT json_build_array( - json_build_object('id', 3, 'name', name::text), - json_build_object('id', 4, 'name', name::text || '-2') + json_build_object('id', '457daad5-4f1b-4eb7-80ec-6882adb8cc7d', 'name', name::text), + json_build_object('id', '8d20abb0-7f77-4b6c-9991-44acd3c88faa', 'name', name::text || '-2') ), 10 INTO result, total diff --git a/src/test/resources/sql/function/Test1/function_test_duplicate.sql b/src/test/resources/sql/function/Test1/function_test_duplicate.sql index 322a047..79011ed 100644 --- a/src/test/resources/sql/function/Test1/function_test_duplicate.sql +++ b/src/test/resources/sql/function/Test1/function_test_duplicate.sql @@ -3,6 +3,6 @@ CREATE OR REPLACE FUNCTION test_function_duplicate (name text default 'plop') re AS $$ BEGIN - return json_build_object('id', 3, 'name', name); + return json_build_object('id', '457daad5-4f1b-4eb7-80ec-6882adb8cc7d', 'name', name); END; $$ diff --git a/src/test/resources/sql/query/Test/selectOne.sql b/src/test/resources/sql/query/Test/selectOne.sql index 6530ea1..4cc13bb 100644 --- a/src/test/resources/sql/query/Test/selectOne.sql +++ b/src/test/resources/sql/query/Test/selectOne.sql @@ -1 +1 @@ -select json_build_object('id', 2, 'name', 'test'); \ No newline at end of file +select json_build_object('id', '829b1a29-5db8-47f9-9562-961c561ac528', 'name', 'test'); \ No newline at end of file diff --git a/src/test/resources/sql/query/Test/selectOneWithParameters.sql b/src/test/resources/sql/query/Test/selectOneWithParameters.sql index 26b1b8e..099222a 100644 --- a/src/test/resources/sql/query/Test/selectOneWithParameters.sql +++ b/src/test/resources/sql/query/Test/selectOneWithParameters.sql @@ -1 +1 @@ -select json_build_object('id', 2, 'name', :name::text), 'plop'::text as other; \ No newline at end of file +select json_build_object('id', '829b1a29-5db8-47f9-9562-961c561ac528', 'name', :name::text), 'plop'::text as other; \ No newline at end of file diff --git a/src/test/resources/sql/query/Test/selectPaginated.sql b/src/test/resources/sql/query/Test/selectPaginated.sql index 39e3eed..6dc8159 100644 --- a/src/test/resources/sql/query/Test/selectPaginated.sql +++ b/src/test/resources/sql/query/Test/selectPaginated.sql @@ -1,5 +1,5 @@ SELECT json_build_array( - json_build_object('id', 3, 'name', :name::text), - json_build_object('id', 4, 'name', :name::text || '-2') + json_build_object('id', '457daad5-4f1b-4eb7-80ec-6882adb8cc7d', 'name', :name::text), + json_build_object('id', '6085c12e-e94d-4ae1-b7ad-23acc7a82a98', 'name', :name::text || '-2') ), 10 as total LIMIT :limit OFFSET :offset \ No newline at end of file