From 317c93ff71180bf9069dceb6f8554b305cf19814 Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Mon, 20 Sep 2021 10:29:28 +0300 Subject: [PATCH] more tests --- .../model/data/configuration/LegalBasis.java | 7 ++- .../data/configuration/LegalBasisMapping.java | 2 +- .../service/DigitalSignatureService.java | 3 + .../LegalBasisMappingController.java | 10 +++- .../client/DigitalSignatureClient.java | 8 +++ .../integration/client/LegalBasisClient.java | 9 +++ .../client/LicenseReportClient.java | 8 +++ .../integration/service/TypeProvider.java | 3 +- .../tests/DigitalSignatureTest.java | 50 +++++++++++++++++ .../server/integration/tests/DossierTest.java | 17 ++++-- .../integration/tests/LegalBasisTest.java | 56 +++++++++++++++++++ .../integration/tests/LicenseReportTest.java | 46 +++++++++++++++ 12 files changed, 206 insertions(+), 13 deletions(-) create mode 100644 persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DigitalSignatureClient.java create mode 100644 persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/LegalBasisClient.java create mode 100644 persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/LicenseReportClient.java create mode 100644 persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DigitalSignatureTest.java create mode 100644 persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/LegalBasisTest.java create mode 100644 persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/LicenseReportTest.java diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/data/configuration/LegalBasis.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/data/configuration/LegalBasis.java index a71563c0a..02ef895f2 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/data/configuration/LegalBasis.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/data/configuration/LegalBasis.java @@ -1,5 +1,7 @@ package com.iqser.red.service.persistence.service.v1.api.model.data.configuration; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; @@ -8,6 +10,8 @@ import javax.persistence.*; @Data @NoArgsConstructor @Entity +@AllArgsConstructor +@Builder @Table(name = "legal_basis") public class LegalBasis { @@ -21,8 +25,5 @@ public class LegalBasis { @Column private String reason; - @ManyToOne - private LegalBasisMapping legalBasisMapping; - } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/data/configuration/LegalBasisMapping.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/data/configuration/LegalBasisMapping.java index 348a5dbef..e1ad39f19 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/data/configuration/LegalBasisMapping.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/data/configuration/LegalBasisMapping.java @@ -18,7 +18,7 @@ public class LegalBasisMapping { @Column private long version; - @OneToMany(mappedBy = "legalBasisMapping", cascade = CascadeType.ALL) + @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY) private List legalBasis = new ArrayList<>(); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DigitalSignatureService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DigitalSignatureService.java index f04a00710..6a61c8e1c 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DigitalSignatureService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DigitalSignatureService.java @@ -10,6 +10,8 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import javax.transaction.Transactional; + @Slf4j @Service @RequiredArgsConstructor @@ -48,6 +50,7 @@ public class DigitalSignatureService { } + @Transactional public void updateDigitalSignature(DigitalSignature digitalSignatureModel) { digitalSignatureRepository.findById(DigitalSignature.ID).ifPresentOrElse(digitalSignature -> { diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/LegalBasisMappingController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/LegalBasisMappingController.java index 7b31a5783..efaf4c9f2 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/LegalBasisMappingController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/LegalBasisMappingController.java @@ -1,5 +1,6 @@ package com.iqser.red.service.peristence.v1.server.controller; +import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.LegalBasisMappingRepository; import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.LegalBasis; import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.LegalBasisMapping; @@ -9,6 +10,7 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; +import javax.transaction.Transactional; import java.util.List; @@ -21,6 +23,7 @@ public class LegalBasisMappingController implements LegalBasisMappingResource { @Override + @Transactional public void setLegalBasisMapping(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody List legalBasisMapping) { legalBasisMappingRepository.findById(dossierTemplateId).ifPresentOrElse((lbm) -> { @@ -31,19 +34,20 @@ public class LegalBasisMappingController implements LegalBasisMappingResource { var lbm = new LegalBasisMapping(); lbm.setDossierTemplateId(dossierTemplateId); lbm.setLegalBasis(legalBasisMapping); - lbm.setVersion(0); + lbm.setVersion(1); legalBasisMappingRepository.save(lbm); }); } @Override + @Transactional public List getLegalBasisMapping(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId) { - return legalBasisMappingRepository.findById(dossierTemplateId).get().getLegalBasis(); + return legalBasisMappingRepository.findById(dossierTemplateId).map(LegalBasisMapping::getLegalBasis).orElseThrow(() -> new NotFoundException("Legal Basis Not configured!")); } @Override public long getVersion(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId) { - return legalBasisMappingRepository.findById(dossierTemplateId).get().getVersion(); + return legalBasisMappingRepository.findById(dossierTemplateId).map(LegalBasisMapping::getVersion).orElse(0l); } } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DigitalSignatureClient.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DigitalSignatureClient.java new file mode 100644 index 000000000..328797eeb --- /dev/null +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DigitalSignatureClient.java @@ -0,0 +1,8 @@ +package com.iqser.red.service.peristence.v1.server.integration.client; + +import com.iqser.red.service.persistence.service.v1.api.resources.DigitalSignatureResource; +import org.springframework.cloud.openfeign.FeignClient; + +@FeignClient(name = "DigitalSignatureClient", url = "http://localhost:${server.port}") +public interface DigitalSignatureClient extends DigitalSignatureResource { +} diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/LegalBasisClient.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/LegalBasisClient.java new file mode 100644 index 000000000..b31000365 --- /dev/null +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/LegalBasisClient.java @@ -0,0 +1,9 @@ +package com.iqser.red.service.peristence.v1.server.integration.client; + +import com.iqser.red.service.persistence.service.v1.api.resources.LegalBasisMappingResource; +import org.springframework.cloud.openfeign.FeignClient; + +@FeignClient(name = "LegalBasisClient", url = "http://localhost:${server.port}") +public interface LegalBasisClient extends LegalBasisMappingResource { + +} diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/LicenseReportClient.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/LicenseReportClient.java new file mode 100644 index 000000000..fe3363a3b --- /dev/null +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/LicenseReportClient.java @@ -0,0 +1,8 @@ +package com.iqser.red.service.peristence.v1.server.integration.client; + +import com.iqser.red.service.persistence.service.v1.api.resources.LicenseReportResource; +import org.springframework.cloud.openfeign.FeignClient; + +@FeignClient(name = "LicenseReportClient", url = "http://localhost:${server.port}") +public interface LicenseReportClient extends LicenseReportResource { +} diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/TypeProvider.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/TypeProvider.java index 08b34c420..02139d85b 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/TypeProvider.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/TypeProvider.java @@ -24,8 +24,7 @@ public class TypeProvider { type.setHint(false); type.setRank(100); type.setRecommendation(false); - type.setLabel("test"); - type.setCaseInsensitive(false); + type.setCaseInsensitive(true); type.setDossierTemplateId(dossierTemplate.getId()); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DigitalSignatureTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DigitalSignatureTest.java new file mode 100644 index 000000000..00e964f05 --- /dev/null +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DigitalSignatureTest.java @@ -0,0 +1,50 @@ +package com.iqser.red.service.peristence.v1.server.integration.tests; + +import com.iqser.red.service.peristence.v1.server.integration.client.DigitalSignatureClient; +import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest; +import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.DigitalSignature; +import feign.FeignException; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; + +import static org.assertj.core.api.Assertions.assertThat; + + +public class DigitalSignatureTest extends AbstractPersistenceServerServiceTest { + + @Autowired + private DigitalSignatureClient digitalSignatureClient; + + @Test + public void testDigitalSignature() { + + try { + digitalSignatureClient.getDigitalSignature(); + } catch (FeignException.FeignClientException e) { + assertThat(e.status()).isEqualTo(404); + } + + DigitalSignature digitalSignature = new DigitalSignature(); + digitalSignature.setPassword("test"); + digitalSignature.setCertificateName("test"); + digitalSignature.setReason("test"); + digitalSignature.setLocation("test"); + digitalSignature.setContactInfo("test"); + digitalSignature.setPrivateKey(new byte[]{1, 2, 3, 4}); + + var savedDigitalSignature = digitalSignatureClient.saveDigitalSignature(digitalSignature); + + var loadedSignature = digitalSignatureClient.getDigitalSignature(); + // encrypted + assertThat(savedDigitalSignature.getPassword()).isNotEqualTo(loadedSignature.getPassword()); + assertThat(savedDigitalSignature.getPrivateKey()).isNotEqualTo(loadedSignature.getPrivateKey()); + + + digitalSignature.setReason("new test"); + digitalSignatureClient.updateDigitalSignature(digitalSignature); + loadedSignature = digitalSignatureClient.getDigitalSignature(); + assertThat(loadedSignature.getReason()).isEqualTo("new test"); + + + } +} diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTest.java index 495049889..e1b1cea45 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTest.java @@ -1,5 +1,6 @@ package com.iqser.red.service.peristence.v1.server.integration.tests; +import com.google.common.collect.Sets; import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest; import com.iqser.red.service.peristence.v1.server.integration.client.DossierClient; import com.iqser.red.service.peristence.v1.server.integration.service.DossierTesterAndProvider; @@ -42,12 +43,20 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { assertThat(loadedTemplate).isEqualTo(updated); - dossierClient.getAllDossiers().forEach(ld -> { - dossierClient.delete(ld.getId()); - }); + dossierClient.getAllDossiers().forEach(ld -> dossierClient.delete(ld.getId())); - assertThat(dossierClient.getAllDossiers().isEmpty()).isTrue(); + assertThat(dossierClient.getAllDossiers()).isEmpty(); assertThat(dossierClient.getSoftDeletedDossiers().size()).isEqualTo(1); + dossierClient.undeleteDossiers(Sets.newHashSet(dossier.getId())); + + assertThat(dossierClient.getAllDossiers()).isNotEmpty(); + assertThat(dossierClient.getSoftDeletedDossiers()).isEmpty(); + + + dossierClient.hardDeleteDossiers(Sets.newHashSet(dossier.getId())); + assertThat(dossierClient.getAllDossiers()).isEmpty(); + assertThat(dossierClient.getSoftDeletedDossiers()).isEmpty(); + } } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/LegalBasisTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/LegalBasisTest.java new file mode 100644 index 000000000..a595d80fb --- /dev/null +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/LegalBasisTest.java @@ -0,0 +1,56 @@ +package com.iqser.red.service.peristence.v1.server.integration.tests; + +import com.iqser.red.service.peristence.v1.server.integration.client.LegalBasisClient; +import com.iqser.red.service.peristence.v1.server.integration.service.DossierTemplateTesterAndProvider; +import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest; +import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.LegalBasis; +import feign.FeignException; +import org.assertj.core.util.Lists; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.ArrayList; +import java.util.stream.Collectors; + +import static org.assertj.core.api.Assertions.assertThat; + +public class LegalBasisTest extends AbstractPersistenceServerServiceTest { + + @Autowired + private DossierTemplateTesterAndProvider dossierTemplateTesterAndProvider; + + @Autowired + private LegalBasisClient legalBasisClient; + + @Test + public void testLegalBasis() { + + var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate(); + + assertThat(legalBasisClient.getVersion(dossierTemplate.getId())).isEqualTo(0); + + try { + legalBasisClient.getLegalBasisMapping(dossierTemplate.getId()); + } catch (FeignException.FeignClientException e) { + assertThat(e.status()).isEqualTo(404); + } + + + var mappings = new ArrayList(); + mappings.add(LegalBasis.builder().name("test 1").description("test 1").reason("test 1").build()); + mappings.add(LegalBasis.builder().name("test 2").description("test 2").reason("test 2").build()); + legalBasisClient.setLegalBasisMapping(dossierTemplate.getId(), mappings); + assertThat(legalBasisClient.getVersion(dossierTemplate.getId())).isEqualTo(1); + + + var mapping = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId()); + assertThat(mapping.size()).isEqualTo(2); + assertThat(mapping.stream().map(LegalBasis::getName).collect(Collectors.toList())).containsExactlyInAnyOrder("test 1", "test 2"); + + + legalBasisClient.setLegalBasisMapping(dossierTemplate.getId(), Lists.newArrayList()); + assertThat(legalBasisClient.getLegalBasisMapping(dossierTemplate.getId())).isEmpty(); + assertThat(legalBasisClient.getVersion(dossierTemplate.getId())).isEqualTo(2); + + } +} diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/LicenseReportTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/LicenseReportTest.java new file mode 100644 index 000000000..b6837916e --- /dev/null +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/LicenseReportTest.java @@ -0,0 +1,46 @@ +package com.iqser.red.service.peristence.v1.server.integration.tests; + +import com.iqser.red.service.peristence.v1.server.integration.client.LicenseReportClient; +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.service.FileTesterAndProvider; +import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest; +import com.iqser.red.service.persistence.service.v1.api.model.LicenseReportRequest; +import org.assertj.core.util.Lists; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; + +import java.time.OffsetDateTime; + +import static org.assertj.core.api.Assertions.assertThat; + +public class LicenseReportTest extends AbstractPersistenceServerServiceTest { + + @Autowired + private DossierTemplateTesterAndProvider dossierTemplateTesterAndProvider; + + @Autowired + private LicenseReportClient licenseReportClient; + + @Autowired + private FileTesterAndProvider fileTesterAndProvider; + + @Autowired + private DossierTesterAndProvider dossierTesterAndProvider; + + @Test + public void testLicenseReport() { + + var dossier = dossierTesterAndProvider.provideTestDossier(); + + fileTesterAndProvider.testAndProvideFile(dossier); + + LicenseReportRequest request = new LicenseReportRequest(); + request.setDossierIds(Lists.newArrayList(dossier.getId())); + request.setStartDate(OffsetDateTime.now().minusHours(10).toInstant()); + request.setEndDate(OffsetDateTime.now().plusHours(10).toInstant()); + request.setRequestId("123"); + assertThat(licenseReportClient.getLicenseReport(request, 0, 20)).isNotNull(); + } + +}