From 054b3e6eb209fdffe09613707df90d974a9d01db Mon Sep 17 00:00:00 2001 From: agrancaric Date: Thu, 4 Jul 2024 09:40:16 +0200 Subject: [PATCH] Add support for sorting properties of embedded id --- .../DefaultRegistryConfigurationService.java | 1 + .../nrich/registry/RegistryTestConfiguration.java | 13 ++++++++++++- .../DefaultRegistryConfigurationServiceTest.java | 2 +- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/nrich-registry/src/main/java/net/croz/nrich/registry/configuration/service/DefaultRegistryConfigurationService.java b/nrich-registry/src/main/java/net/croz/nrich/registry/configuration/service/DefaultRegistryConfigurationService.java index 5510f09d9..78e36b912 100644 --- a/nrich-registry/src/main/java/net/croz/nrich/registry/configuration/service/DefaultRegistryConfigurationService.java +++ b/nrich-registry/src/main/java/net/croz/nrich/registry/configuration/service/DefaultRegistryConfigurationService.java @@ -106,6 +106,7 @@ private RegistryEntityConfiguration resolveRegistryConfiguration(String groupId, List registryPropertyDisplayOrderList = Optional.ofNullable(registryOverrideConfiguration.getPropertyDisplayOrderList()).orElse(Collections.emptyList()); registryPropertyConfigurationList.sort(new RegistryPropertyComparator(registryPropertyDisplayOrderList)); + registryEmbeddedIdPropertyConfigurationList.sort(new RegistryPropertyComparator(registryPropertyDisplayOrderList)); return RegistryEntityConfiguration.builder() .groupId(groupId) diff --git a/nrich-registry/src/test/java/net/croz/nrich/registry/RegistryTestConfiguration.java b/nrich-registry/src/test/java/net/croz/nrich/registry/RegistryTestConfiguration.java index 23c53a269..3906bcaec 100644 --- a/nrich-registry/src/test/java/net/croz/nrich/registry/RegistryTestConfiguration.java +++ b/nrich-registry/src/test/java/net/croz/nrich/registry/RegistryTestConfiguration.java @@ -39,6 +39,7 @@ import net.croz.nrich.registry.configuration.controller.RegistryConfigurationController; import net.croz.nrich.registry.configuration.service.DefaultRegistryConfigurationService; import net.croz.nrich.registry.configuration.stub.RegistryConfigurationTestEntity; +import net.croz.nrich.registry.configuration.stub.RegistryConfigurationTestEntityWithAssociationAndEmbeddedId; import net.croz.nrich.registry.core.model.RegistryDataConfigurationHolder; import net.croz.nrich.registry.core.model.RegistryGroupDefinitionHolder; import net.croz.nrich.registry.core.model.RegistryHistoryConfigurationHolder; @@ -340,7 +341,17 @@ private List createRegistryOverrideConfigur RegistryOverrideConfigurationHolder searchConfigurationHolder = RegistryOverrideConfigurationHolder.builder() .type(RegistryTestEntityWithOverriddenSearchConfiguration.class).overrideSearchConfiguration(searchConfiguration).build(); - return Arrays.asList(interceptorTestEntityConfigurationHolder, InterceptorTestNonEntityNonModifiableConfigurationHolder, searchConfigurationHolder, configurationEntityConfigurationHolder); + RegistryOverrideConfiguration embeddedEntityOverrideConfiguration = RegistryOverrideConfiguration.defaultConfiguration(); + + embeddedEntityOverrideConfiguration.setPropertyDisplayOrderList(List.of("id.secondId", "id.firstId")); + + RegistryOverrideConfigurationHolder embeddedEntityOverrideConfigurationHolder = RegistryOverrideConfigurationHolder.builder() + .type(RegistryConfigurationTestEntityWithAssociationAndEmbeddedId.class).overrideConfiguration(embeddedEntityOverrideConfiguration).build(); + + return Arrays.asList( + interceptorTestEntityConfigurationHolder, InterceptorTestNonEntityNonModifiableConfigurationHolder, searchConfigurationHolder, configurationEntityConfigurationHolder, + embeddedEntityOverrideConfigurationHolder + ); } private ModelMapper strictModelMapper() { diff --git a/nrich-registry/src/test/java/net/croz/nrich/registry/configuration/service/DefaultRegistryConfigurationServiceTest.java b/nrich-registry/src/test/java/net/croz/nrich/registry/configuration/service/DefaultRegistryConfigurationServiceTest.java index c94a9f2bb..b09a662ca 100644 --- a/nrich-registry/src/test/java/net/croz/nrich/registry/configuration/service/DefaultRegistryConfigurationServiceTest.java +++ b/nrich-registry/src/test/java/net/croz/nrich/registry/configuration/service/DefaultRegistryConfigurationServiceTest.java @@ -154,7 +154,7 @@ void shouldResolveRegistryConfigurationForComplexEntitiesWithAssociationsAndEmbe assertThat(registryEntityConfiguration.getPropertyConfigurationList()).extracting("name").containsExactly( "id", "amount", "registryConfigurationTestEntityManyToOne", "registryConfigurationTestEntityOneToOne" ); - assertThat(registryEntityConfiguration.getEmbeddedIdPropertyConfigurationList()).extracting("name").containsExactlyInAnyOrder("id.firstId", "id.secondId"); + assertThat(registryEntityConfiguration.getEmbeddedIdPropertyConfigurationList()).extracting("name").containsExactly("id.secondId", "id.firstId"); // and when RegistryPropertyConfiguration numberRegistryConfiguration = registryEntityConfiguration.getPropertyConfigurationList().get(1);