From f2b4d175c27d1f9773f14a10b20c484465a7a095 Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Mon, 8 Nov 2021 14:27:58 +0200 Subject: [PATCH] fixed hard delete and dossier template --- .../DossierTemplatePersistenceService.java | 10 ++++---- .../tests/DossierTemplateTest.java | 23 +++++++++++++++++++ 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierTemplatePersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierTemplatePersistenceService.java index 0c7bf2c27..2166145ab 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierTemplatePersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierTemplatePersistenceService.java @@ -15,7 +15,6 @@ import java.time.temporal.ChronoUnit; import java.util.List; import java.util.Optional; import java.util.UUID; -import java.util.stream.Collectors; @Service @@ -65,14 +64,13 @@ public class DossierTemplatePersistenceService { public void deleteDossierTemplate(String dossierTemplateId, String deletingUserId) { dossierTemplateRepository.findById(dossierTemplateId).ifPresentOrElse((dossierTemplate) -> { - dossierTemplate.getDossiers().stream().filter(template -> !) - if (dossierTemplate.getDossiers().stream().filter(d -> d.getHardDeletedTime() ==null).collect(Collectors.toList()).isEmpty()) { - + var hasNonDeletedDossiers = dossierTemplate.getDossiers().stream().anyMatch(template -> template.getHardDeletedTime() == null); + if (hasNonDeletedDossiers) { + throw new BadRequestException("Cannot delete dossier template with active dossiers!"); + } else { dossierTemplate.setModifiedBy(deletingUserId); dossierTemplate.setDateModified(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); dossierTemplate.setSoftDeleteTime(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); - } else { - throw new BadRequestException("Cannot delete dossier template with active dossiers!"); } }, () -> { throw new NotFoundException(String.format(DOSSIER_TEMPLATE_NOT_FOUND_MESSAGE, dossierTemplateId)); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateTest.java index 3366e06a1..3c0963bcd 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateTest.java @@ -1,7 +1,9 @@ package com.iqser.red.service.peristence.v1.server.integration.tests; +import com.iqser.red.service.peristence.v1.server.integration.client.DossierClient; import com.iqser.red.service.peristence.v1.server.integration.client.DossierTemplateClient; import com.iqser.red.service.peristence.v1.server.integration.service.DossierTemplateTesterAndProvider; +import com.iqser.red.service.peristence.v1.server.integration.service.DossierTesterAndProvider; import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.CreateOrUpdateDossierTemplateRequest; import feign.FeignException; @@ -9,16 +11,24 @@ import org.junit.Test; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import java.util.Collections; + import static org.assertj.core.api.Assertions.assertThat; public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { + @Autowired + private DossierTesterAndProvider dossierTesterAndProvider; + @Autowired private DossierTemplateTesterAndProvider dossierTemplateTesterAndProvider; @Autowired private DossierTemplateClient dossierTemplateClient; + @Autowired + private DossierClient dossierClient; + @Test public void testDossierTemplate() { @@ -50,5 +60,18 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { updated = dossierTemplateClient.createOrUpdateDossierTemplate(cru); assertThat(updated.getName()).isEqualTo("Template 1 Update"); + var testDossier = dossierTesterAndProvider.provideTestDossier(updated); + + try{ + dossierTemplateClient.deleteDossierTemplate(updated.getId(), "1"); + }catch (FeignException e){ + assertThat(e.status()).isEqualTo(400); + } + + dossierClient.hardDeleteDossiers(Collections.singleton(testDossier.getId())); + + dossierTemplateClient.deleteDossierTemplate(updated.getId(), "1"); + assertThat(dossierTemplateClient.getAllDossierTemplates().isEmpty()).isTrue(); } + }