From 2ecb2eeadb5a804595d153ae73628c983866bad2 Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Mon, 20 Sep 2021 14:21:38 +0300 Subject: [PATCH] more tests --- .../model/data/dossier/ReportTemplate.java | 6 ++ .../DossierAttributesConfigResource.java | 14 ++-- ...sierAttributeConfigPersistenceService.java | 29 ++++--- .../DossierAttributeRepository.java | 9 +++ .../integration/client/DownloadClient.java | 8 ++ .../client/FileProcessingClient.java | 8 ++ .../client/ReportTemplateClient.java | 10 +++ .../tests/DossierAttributeTest.java | 70 ++++++++++++++++ .../integration/tests/DownloadTest.java | 57 +++++++++++++ .../integration/tests/FileProcessingTest.java | 81 +++++++++++++++++++ .../integration/tests/ReportTemplateTest.java | 54 +++++++++++++ .../AbstractPersistenceServerServiceTest.java | 10 ++- 12 files changed, 335 insertions(+), 21 deletions(-) create mode 100644 persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DownloadClient.java create mode 100644 persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/FileProcessingClient.java create mode 100644 persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/ReportTemplateClient.java create mode 100644 persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierAttributeTest.java create mode 100644 persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DownloadTest.java create mode 100644 persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileProcessingTest.java create mode 100644 persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ReportTemplateTest.java diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/data/dossier/ReportTemplate.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/data/dossier/ReportTemplate.java index 1b93d407a..d0686d7b9 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/data/dossier/ReportTemplate.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/data/dossier/ReportTemplate.java @@ -1,5 +1,6 @@ package com.iqser.red.service.persistence.service.v1.api.model.data.dossier; +import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import javax.persistence.*; @@ -26,10 +27,15 @@ public class ReportTemplate { @Column private boolean activeByDefault; + @JsonIgnore @ManyToOne(fetch = FetchType.LAZY) private DossierTemplate dossierTemplate; + @Column(updatable = false,insertable = false,name = "dossier_template_id") + private String dossierTemplateId; + @ManyToMany + @JsonIgnore private List dossiers = new ArrayList<>(); } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierAttributesConfigResource.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierAttributesConfigResource.java index 037f29a37..a13434731 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierAttributesConfigResource.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierAttributesConfigResource.java @@ -9,9 +9,7 @@ import java.util.List; public interface DossierAttributesConfigResource { - String DOSSIER_ATTRIBUTES_PATH = "/dossierAttributes"; - String DOSSIER_ATTRIBUTE_PATH = "/dossierAttribute"; - String BASE_CONFIG_PATH = "/baseConfig"; + String DOSSIER_ATTRIBUTE_PATH = "/dossier-attribute"; String DOSSIER_TEMPLATE_ID = "dossierTemplateId"; String DOSSIER_TEMPLATE_ID_PATH_VARIABLE = "/{" + DOSSIER_TEMPLATE_ID + "}"; @@ -21,30 +19,30 @@ public interface DossierAttributesConfigResource { @ResponseBody @ResponseStatus(HttpStatus.OK) - @PostMapping(value = DOSSIER_ATTRIBUTES_PATH + DOSSIER_ATTRIBUTE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) + @PostMapping(value = DOSSIER_ATTRIBUTE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) DossierAttributeConfig addOrUpdateDossierAttribute(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody DossierAttributeConfig dossierAttributeConfig); @ResponseBody @ResponseStatus(HttpStatus.OK) - @PutMapping(value = DOSSIER_ATTRIBUTES_PATH + DOSSIER_ATTRIBUTE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) + @PutMapping(value = DOSSIER_ATTRIBUTE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) List setDossierAttributesConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody List dossierAttributesConfig); @ResponseStatus(HttpStatus.NO_CONTENT) - @DeleteMapping(value = DOSSIER_ATTRIBUTES_PATH + DOSSIER_ATTRIBUTE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE + DOSSIER_ATTRIBUTE_ID_PATH_VARIABLE) + @DeleteMapping(value = DOSSIER_ATTRIBUTE_PATH + DOSSIER_ATTRIBUTE_ID_PATH_VARIABLE) void deleteDossierAttribute(@PathVariable(DOSSIER_ATTRIBUTE_ID) String dossierAttributeId); @ResponseStatus(HttpStatus.NO_CONTENT) - @PostMapping(value = DOSSIER_ATTRIBUTES_PATH + DOSSIER_ATTRIBUTE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE + "/delete") + @PostMapping(value = DOSSIER_ATTRIBUTE_PATH + "/delete") void deleteDossierAttributes(@RequestBody List dossierAttributeIds); @ResponseBody @ResponseStatus(HttpStatus.OK) - @GetMapping(value = DOSSIER_ATTRIBUTES_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE) + @GetMapping(value = DOSSIER_ATTRIBUTE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE) List getDossierAttributes(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierAttributeConfigPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierAttributeConfigPersistenceService.java index dc97801ab..21fb9c066 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierAttributeConfigPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierAttributeConfigPersistenceService.java @@ -2,23 +2,25 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persis import com.iqser.red.service.persistence.management.v1.processor.exception.ConflictException; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierAttributeConfigRepository; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierAttributeRepository; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierTemplateRepository; import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.DossierAttributeConfig; +import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.FileAttributeConfig; import lombok.RequiredArgsConstructor; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.text.WordUtils; import org.springframework.stereotype.Service; import javax.transaction.Transactional; -import java.util.List; -import java.util.Optional; -import java.util.UUID; +import java.util.*; +import java.util.stream.Collectors; @Service @RequiredArgsConstructor public class DossierAttributeConfigPersistenceService { private final DossierAttributeConfigRepository dossierAttributeConfigRepository; + private final DossierAttributeRepository dossierAttributeRepository; private final DossierTemplateRepository dossierTemplateRepository; public DossierAttributeConfig addOrUpdateDossierAttribute(String dossierTemplateId, DossierAttributeConfig dossierAttributeConfig) { @@ -54,15 +56,22 @@ public class DossierAttributeConfigPersistenceService { @Transactional public List setDossierAttributesConfig(String dossierTemplateId, List dossierAttributesConfig) { - dossierAttributeConfigRepository.deleteByDossierTemplateId(dossierTemplateId); - var dossierTemplate = dossierTemplateRepository.getOne(dossierTemplateId); - dossierAttributesConfig.forEach(d -> { - d.setDossierTemplate(dossierTemplate); - d.setId(UUID.randomUUID().toString()); - setPlaceholder(d); - uniqueLabelAndPlaceholder(d); + + Set toSetIds = dossierAttributesConfig.stream().map(DossierAttributeConfig::getId).filter(Objects::nonNull).collect(Collectors.toSet()); + var currentConfigs = dossierAttributeConfigRepository.findAllByDossierTemplateId(dossierTemplateId); + Set configsToRemove = currentConfigs.stream().filter(c -> !toSetIds.contains(c.getId())).collect(Collectors.toSet()); + + + dossierAttributesConfig.forEach(fac -> addOrUpdateDossierAttribute(dossierTemplateId, fac)); + + configsToRemove.forEach(ctr -> { + dossierAttributeRepository.deleteByDossierAttributeConfigId(ctr.getId()); + dossierAttributeConfigRepository.deleteById(ctr.getId()); }); + return getDossierAttributes(dossierTemplateId); + + } @Transactional diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DossierAttributeRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DossierAttributeRepository.java index b9d9b95d1..d8bf074a2 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DossierAttributeRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DossierAttributeRepository.java @@ -2,6 +2,8 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persis import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.DossierAttribute; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; import java.util.List; @@ -10,4 +12,11 @@ public interface DossierAttributeRepository extends JpaRepository findByIdDossierId(String dossierId); void deleteByDossierId(String dossierId); + + @Query("SELECT a FROM DossierAttribute a WHERE a.dossierAttributeConfig.dossierTemplate.id = :dossierTemplateId") + List findByDossierTemplateId(String dossierTemplateId); + + @Modifying + @Query("DELETE FROM DossierAttribute e WHERE e.dossierAttributeConfig.id = :id") + void deleteByDossierAttributeConfigId(String id); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DownloadClient.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DownloadClient.java new file mode 100644 index 000000000..b802543f2 --- /dev/null +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DownloadClient.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.DownloadResource; +import org.springframework.cloud.openfeign.FeignClient; + +@FeignClient(name = "DownloadClient" ,url = "http://localhost:${server.port}") +public interface DownloadClient extends DownloadResource { +} diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/FileProcessingClient.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/FileProcessingClient.java new file mode 100644 index 000000000..daf8ce483 --- /dev/null +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/FileProcessingClient.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.FileStatusProcessingUpdateResource; +import org.springframework.cloud.openfeign.FeignClient; + +@FeignClient(name = "FileProcessingClient", url = "http://localhost:${server.port}") +public interface FileProcessingClient extends FileStatusProcessingUpdateResource { +} diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/ReportTemplateClient.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/ReportTemplateClient.java new file mode 100644 index 000000000..fa0f82026 --- /dev/null +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/ReportTemplateClient.java @@ -0,0 +1,10 @@ +package com.iqser.red.service.peristence.v1.server.integration.client; + +import com.iqser.red.service.persistence.service.v1.api.resources.ReportTemplateResource; +import org.springframework.cloud.openfeign.FeignClient; + + + +@FeignClient(name = "ReportTemplateClient", url = "http://localhost:${server.port}") +public interface ReportTemplateClient extends ReportTemplateResource { +} diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierAttributeTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierAttributeTest.java new file mode 100644 index 000000000..e4bab268e --- /dev/null +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierAttributeTest.java @@ -0,0 +1,70 @@ +package com.iqser.red.service.peristence.v1.server.integration.tests; + +import com.iqser.red.service.peristence.v1.server.integration.client.*; +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.data.dossier.DossierAttribute; +import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.DossierAttributeConfig; +import lombok.SneakyThrows; +import org.assertj.core.util.Lists; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; + +public class DossierAttributeTest extends AbstractPersistenceServerServiceTest { + + + @Autowired + private FileTesterAndProvider fileTesterAndProvider; + + @Autowired + private DossierTesterAndProvider dossierTesterAndProvider; + + @Autowired + private DossierAttributeConfigClient dossierAttributeConfigClient; + + @Autowired + private DossierAttributeClient dossierAttributeClient; + + + @SneakyThrows + @Test + public void testDossierAttributes() { + var dossier = dossierTesterAndProvider.provideTestDossier(); + + var loadedAttributes = dossierAttributeConfigClient.getDossierAttributes(dossier.getDossierTemplateId()); + assertThat(loadedAttributes).isEmpty(); + + DossierAttributeConfig attribute = new DossierAttributeConfig(); + attribute.setLabel("test"); + attribute.setEditable(true); + attribute.setType(DossierAttributeConfig.DossierAttributeType.TEXT); + + + dossierAttributeConfigClient.addOrUpdateDossierAttribute(dossier.getDossierTemplateId(),attribute); + loadedAttributes = dossierAttributeConfigClient.getDossierAttributes(dossier.getDossierTemplateId()); + assertThat(loadedAttributes).isNotEmpty(); + + + dossierAttributeConfigClient.setDossierAttributesConfig(dossier.getDossierTemplateId(), Lists.newArrayList()); + loadedAttributes = dossierAttributeConfigClient.getDossierAttributes(dossier.getDossierTemplateId()); + assertThat(loadedAttributes).isEmpty(); + + + dossierAttributeConfigClient.setDossierAttributesConfig(dossier.getDossierTemplateId(), Lists.newArrayList(attribute)); + loadedAttributes = dossierAttributeConfigClient.getDossierAttributes(dossier.getDossierTemplateId()); + assertThat(loadedAttributes).isNotEmpty(); + dossierAttributeConfigClient.deleteDossierAttribute(loadedAttributes.iterator().next().getId()); + + + dossierAttributeConfigClient.setDossierAttributesConfig(dossier.getDossierTemplateId(), Lists.newArrayList(attribute)); + loadedAttributes = dossierAttributeConfigClient.getDossierAttributes(dossier.getDossierTemplateId()); + assertThat(loadedAttributes).isNotEmpty(); + dossierAttributeConfigClient.deleteDossierAttributes(Lists.newArrayList(loadedAttributes.iterator().next().getId())); + + } +} diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DownloadTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DownloadTest.java new file mode 100644 index 000000000..2d8314117 --- /dev/null +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DownloadTest.java @@ -0,0 +1,57 @@ +package com.iqser.red.service.peristence.v1.server.integration.tests; + +import com.iqser.red.service.peristence.v1.server.integration.client.DownloadClient; +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.DownloadRequest; +import com.iqser.red.service.persistence.service.v1.api.model.JSONPrimitive; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Collections; + +import static org.assertj.core.api.Assertions.assertThat; + +public class DownloadTest extends AbstractPersistenceServerServiceTest { + + @Autowired + private FileTesterAndProvider fileTesterAndProvider; + + @Autowired + private DossierTesterAndProvider dossierTesterAndProvider; + + @Autowired + private DownloadClient downloadClient; + + @Test + public void testDownload() { + var dossier = dossierTesterAndProvider.provideTestDossier(); + + var file = fileTesterAndProvider.testAndProvideFile(dossier); + + + downloadClient.prepareDownload(DownloadRequest.builder() + .userId("1") + .dossierId(dossier.getId()) + .fileIds(Collections.singletonList(file.getId())) + .build()); + + var statuses = downloadClient.getDownloadStatus("1"); + assertThat(statuses).isNotEmpty(); + assertThat(statuses.iterator().next().getLastDownload()).isNull(); + + + downloadClient.setDownloaded(JSONPrimitive.of(statuses.iterator().next().getStorageId())); + statuses = downloadClient.getDownloadStatus("1"); + assertThat(statuses).isNotEmpty(); + assertThat(statuses.iterator().next().getLastDownload()).isNotNull(); + + + downloadClient.deleteDownloadStatus(JSONPrimitive.of(statuses.iterator().next().getStorageId())); + statuses = downloadClient.getDownloadStatus("1"); + assertThat(statuses).isEmpty(); + + + } +} diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileProcessingTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileProcessingTest.java new file mode 100644 index 000000000..1f900a3d3 --- /dev/null +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileProcessingTest.java @@ -0,0 +1,81 @@ +package com.iqser.red.service.peristence.v1.server.integration.tests; + +import com.iqser.red.service.peristence.v1.server.integration.client.FileClient; +import com.iqser.red.service.peristence.v1.server.integration.client.FileProcessingClient; +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.data.dossier.FileStatus; +import com.iqser.red.service.redaction.v1.model.AnalyzeResult; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; + +import static org.assertj.core.api.Assertions.assertThat; + +public class FileProcessingTest extends AbstractPersistenceServerServiceTest { + + @Autowired + private FileTesterAndProvider fileTesterAndProvider; + + @Autowired + private DossierTesterAndProvider dossierTesterAndProvider; + + @Autowired + private FileProcessingClient fileProcessingClient; + + @Autowired + private FileClient fileClient; + + @Test + public void testFileProcessing() { + var dossier = dossierTesterAndProvider.provideTestDossier(); + + var file = fileTesterAndProvider.testAndProvideFile(dossier); + + assertThat(file.getLastOCRTime()).isNull(); + + fileProcessingClient.analysisFailed(dossier.getId(), file.getId()); + var loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); + assertThat(loadedFile.getStatus()).isEqualTo(FileStatus.ERROR); + + + fileProcessingClient.analysisSuccessful(dossier.getId(), file.getId(), AnalyzeResult.builder() + .analysisVersion(100) + .fileId(file.getId()) + .dossierId(dossier.getId()).build()); + loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); + assertThat(loadedFile.getStatus()).isEqualTo(FileStatus.UNASSIGNED); + assertThat(loadedFile.getAnalysisVersion()).isEqualTo(100); + + + + fileProcessingClient.ocrFailed(dossier.getId(), file.getId()); + loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); + assertThat(loadedFile.getStatus()).isEqualTo(FileStatus.ERROR); + + + fileProcessingClient.ocrSuccessful(dossier.getId(), file.getId()); + loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); + assertThat(loadedFile.getStatus()).isEqualTo(FileStatus.PROCESSING); + assertThat(loadedFile.getLastOCRTime()).isNotNull(); + + + + fileProcessingClient.indexing(dossier.getId(), file.getId()); + loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); + assertThat(loadedFile.getStatus()).isEqualTo(FileStatus.INDEXING); + assertThat(loadedFile.getLastIndexed()).isNull(); + + + fileProcessingClient.indexingFailed(dossier.getId(), file.getId()); + loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); + assertThat(loadedFile.getStatus()).isEqualTo(FileStatus.ERROR); + + + fileProcessingClient.indexingSuccessful(dossier.getId(), file.getId()); + loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); + assertThat(loadedFile.getStatus()).isEqualTo(FileStatus.UNASSIGNED); + assertThat(loadedFile.getLastIndexed()).isNotNull(); + + } +} diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ReportTemplateTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ReportTemplateTest.java new file mode 100644 index 000000000..f33d23853 --- /dev/null +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ReportTemplateTest.java @@ -0,0 +1,54 @@ +package com.iqser.red.service.peristence.v1.server.integration.tests; + +import com.iqser.red.service.peristence.v1.server.integration.client.ReportTemplateClient; +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.ReportTemplateUploadRequest; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; + +import static org.assertj.core.api.Assertions.assertThat; + +public class ReportTemplateTest extends AbstractPersistenceServerServiceTest { + + @Autowired + private DossierTemplateTesterAndProvider dossierTemplateTesterAndProvider; + + @Autowired + private ReportTemplateClient reportTemplateClient; + + @Test + public void testReportTemplate() { + + var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate(); + + var availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId()); + assertThat(availableTemplates).isEmpty(); + + reportTemplateClient.uploadTemplate(ReportTemplateUploadRequest.builder() + .activeByDefault(true) + .dossierTemplateId(dossierTemplate.getId()) + .multiFileReport(true) + .fileName("test.docx") + .template(new byte[]{1, 2, 3, 4}).build()); + + + availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId()); + assertThat(availableTemplates).isNotEmpty(); + + + var firstTemplate = reportTemplateClient.getReportTemplate(dossierTemplate.getId(), availableTemplates.iterator().next().getTemplateId()); + assertThat(availableTemplates.iterator().next()).isEqualTo(firstTemplate); + + + var download = reportTemplateClient.downloadReportTemplate(firstTemplate.getDossierTemplateId(), firstTemplate.getTemplateId()); + assertThat(download.getFile().length).isEqualTo(4); + + + reportTemplateClient.deleteTemplate(firstTemplate.getDossierTemplateId(), firstTemplate.getTemplateId()); + + availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId()); + assertThat(availableTemplates).isEmpty(); + + } +} diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/AbstractPersistenceServerServiceTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/AbstractPersistenceServerServiceTest.java index a6204fc9e..67954b016 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/AbstractPersistenceServerServiceTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/AbstractPersistenceServerServiceTest.java @@ -177,8 +177,12 @@ public abstract class AbstractPersistenceServerServiceTest { @Autowired private FileAttributesRepository fileAttributesRepository; + @Autowired + private DownloadStatusRepository downloadStatusRepository; + @After public void afterTests() { + downloadStatusRepository.deleteAll(); fileAttributesRepository.deleteAll(); watermarkRepository.deleteAll(); smtpRepository.deleteAll(); @@ -188,9 +192,6 @@ public abstract class AbstractPersistenceServerServiceTest { reportTemplateRepository.deleteAll(); typeRepository.deleteAll(); viewedPagesRepository.deleteAll(); - fileRepository.deleteAll(); - dossierRepository.deleteAll(); - dossierTemplateRepository.deleteAll(); notificationRepository.deleteAll(); auditRepository.deleteAll(); manualRedactionRepository.deleteAll(); @@ -202,6 +203,9 @@ public abstract class AbstractPersistenceServerServiceTest { watermarkRepository.deleteAll(); ruleSetRepository.deleteAll(); smtpRepository.deleteAll(); + fileRepository.deleteAll(); + dossierRepository.deleteAll(); + dossierTemplateRepository.deleteAll(); } }