diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierStatusPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierStatusPersistenceService.java index 8c9f1c8d4..cbbde7b89 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierStatusPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierStatusPersistenceService.java @@ -30,14 +30,15 @@ public class DossierStatusPersistenceService { if (createOrUpdateDossierStatusRequest.getDossierStatusId() != null) { //update Optional dossierStatus = dossierStatusRepository.findById(createOrUpdateDossierStatusRequest.getDossierStatusId()); if (dossierStatus.isPresent()) { - validateDossierTemplateNameIsUnique(createOrUpdateDossierStatusRequest.getName(), createOrUpdateDossierStatusRequest.getDossierTemplateId()); + validateDossierTemplateNameIsUnique(createOrUpdateDossierStatusRequest.getName(), createOrUpdateDossierStatusRequest.getDossierTemplateId(), + createOrUpdateDossierStatusRequest.getDossierStatusId()); BeanUtils.copyProperties(createOrUpdateDossierStatusRequest, dossierStatus.get()); return dossierStatus.get(); } else { throw new NotFoundException(String.format(DOSSIER_STATUS_NOT_FOUND_MESSAGE, createOrUpdateDossierStatusRequest.getDossierStatusId())); } } else { - validateDossierTemplateNameIsUnique(createOrUpdateDossierStatusRequest.getName(), createOrUpdateDossierStatusRequest.getDossierTemplateId()); + validateDossierTemplateNameIsUnique(createOrUpdateDossierStatusRequest.getName(), createOrUpdateDossierStatusRequest.getDossierTemplateId(),null); DossierStatusEntity dossierStatus = new DossierStatusEntity(); dossierStatus.setId(UUID.randomUUID().toString()); BeanUtils.copyProperties(createOrUpdateDossierStatusRequest, dossierStatus); @@ -88,9 +89,9 @@ public class DossierStatusPersistenceService { dossierStatusRepository.deleteById(dossierStatusId); } - public void validateDossierTemplateNameIsUnique(String dossierStatusName, String dossierTemplateId) { + public void validateDossierTemplateNameIsUnique(String dossierStatusName, String dossierTemplateId, String dossierStatusId) { getAllDossierStatusForTemplate(dossierTemplateId).forEach(existing -> { - if (existing.getName().equals(dossierStatusName)) { + if (existing.getName().equals(dossierStatusName) && !existing.getId().equals(dossierStatusId)) { throw new ConflictException("DossierStatus name must be unique within the same dossier template"); } }); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierStatusTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierStatusTest.java index 9a24ca920..0497026d4 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierStatusTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierStatusTest.java @@ -43,6 +43,11 @@ public class DossierStatusTest extends AbstractPersistenceServerServiceTest { var loadedDossierStatus = dossierStatusClient.createOrUpdateDossierStatus(crudsr); assertThat(loadedDossierStatus).isNotNull(); + crudsr.setDossierStatusId(loadedDossierStatus.getId()); + crudsr.setDescription("New Description"); + var updatedStatus = dossierStatusClient.createOrUpdateDossierStatus(crudsr); + assertThat(updatedStatus).isNotNull(); + allDossierStatus = dossierStatusClient.getAllDossierStatusForTemplate(dossierTemplate.getId()); assertThat(allDossierStatus.size()).isEqualTo(1);