From b688da9c5619ea8acba1cece05b328cc63bca043 Mon Sep 17 00:00:00 2001 From: devplant Date: Sat, 9 Oct 2021 08:11:28 +0300 Subject: [PATCH 1/2] RED-2325 Dossier Stats Endpoint -first implementation, including integration tests --- .../dossiertemplate/dossier/DossierStats.java | 26 ++++ .../api/resources/DossierStatsResource.java | 24 ++++ .../controller/DossierStatsController.java | 29 +++++ .../server/service/DossierStatsService.java | 59 +++++++++ .../client/DossierStatsClient.java | 8 ++ .../service/DossierTesterAndProvider.java | 20 +++- .../integration/tests/DossierStatsTest.java | 112 ++++++++++++++++++ .../AbstractPersistenceServerServiceTest.java | 2 +- 8 files changed, 275 insertions(+), 5 deletions(-) create mode 100644 persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/DossierStats.java create mode 100644 persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierStatsResource.java create mode 100644 persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierStatsController.java create mode 100644 persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/DossierStatsService.java create mode 100644 persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DossierStatsClient.java create mode 100644 persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierStatsTest.java diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/DossierStats.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/DossierStats.java new file mode 100644 index 000000000..827ede7a8 --- /dev/null +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/DossierStats.java @@ -0,0 +1,26 @@ +package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileStatus; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Map; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class DossierStats { + @JsonProperty("dossierId") + private String dossierId; + private int numberOfFiles; + private int numberOfAnalysedPages; // sum of analysedPages + private boolean hasRedactionsFilePresent; // true if at least one file in the dossier has redactions + private boolean hasHintsNoRedactionsFilePresent; // true if at least one file in the dossier has hints but doesn't have redactions + private boolean hasSuggestionsFilePresent; // true if at least one file in the dossier has suggestions + private boolean hasNoFlagsFilePresent; // true if at least one file in the dossier has none of the other flags + private Map fileCountPerStatus; +} diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierStatsResource.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierStatsResource.java new file mode 100644 index 000000000..57ec5f47a --- /dev/null +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierStatsResource.java @@ -0,0 +1,24 @@ +package com.iqser.red.service.persistence.service.v1.api.resources; + +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierStats; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; + +import java.util.Map; +import java.util.Set; + +public interface DossierStatsResource { + + String REST_PATH = "/dossier-stats"; + + String DOSSIER_ID_PARAM = "dossierId"; + String DOSSIER_ID_PATH_PARAM = "/{" + DOSSIER_ID_PARAM + "}"; + + @GetMapping(value = REST_PATH + DOSSIER_ID_PATH_PARAM, produces = MediaType.APPLICATION_JSON_VALUE) + DossierStats getDossierStats(@PathVariable(DOSSIER_ID_PARAM) String dossierId); + + @GetMapping(value = REST_PATH, produces = MediaType.APPLICATION_JSON_VALUE) + Map getDossierStats(@RequestBody Set dossierIds); +} diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierStatsController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierStatsController.java new file mode 100644 index 000000000..827793b41 --- /dev/null +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierStatsController.java @@ -0,0 +1,29 @@ +package com.iqser.red.service.peristence.v1.server.controller; + +import com.iqser.red.service.peristence.v1.server.service.DossierStatsService; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierStats; +import com.iqser.red.service.persistence.service.v1.api.resources.DossierStatsResource; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; +import java.util.Set; +import java.util.function.Function; +import java.util.stream.Collectors; + +@RestController +@RequiredArgsConstructor +public class DossierStatsController implements DossierStatsResource { + + private final DossierStatsService dossierStatsService; + + @Override + public DossierStats getDossierStats(String dossierId) { + return dossierStatsService.getDossierStats(dossierId); + } + + @Override + public Map getDossierStats(Set dossierIds) { + return dossierIds.stream().collect(Collectors.toMap(Function.identity(), dossierStatsService::getDossierStats)); + } +} diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/DossierStatsService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/DossierStatsService.java new file mode 100644 index 000000000..151d4bb72 --- /dev/null +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/DossierStatsService.java @@ -0,0 +1,59 @@ +package com.iqser.red.service.peristence.v1.server.service; + +import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierEntity; +import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity; +import com.iqser.red.service.persistence.management.v1.processor.exception.DossierNotFoundException; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierStats; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierStatus; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileStatus; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import static com.iqser.red.service.persistence.management.v1.processor.exception.DossierNotFoundException.DOSSIER_NOT_FOUND_MESSAGE; + +@Slf4j +@Service +@RequiredArgsConstructor +public class DossierStatsService { + + private final DossierService dossierService; + private final FileStatusService fileStatusService; + + public DossierStats getDossierStats(String dossierId) { + DossierStats dossierStats = new DossierStats(); + // get the dossier + DossierEntity dossierEntity = dossierService.getDossierById(dossierId); + if (dossierEntity.getStatus().equals(DossierStatus.DELETED)) { + throw new DossierNotFoundException(String.format(DOSSIER_NOT_FOUND_MESSAGE, dossierId)); + } + dossierStats.setDossierId(dossierId); + // get the associated files + List files = fileStatusService.getDossierStatus(dossierId); + dossierStats.setNumberOfFiles(files.size()); + dossierStats.setNumberOfAnalysedPages(files.stream().mapToInt(FileEntity::getNumberOfAnalyses).sum()); + files.stream().filter(FileEntity::isHasRedactions).findAny().ifPresent( + (v) -> dossierStats.setHasRedactionsFilePresent(true) + ); + files.stream().filter(FileEntity::isHasHints).filter(f -> !f.isHasRedactions()).findAny().ifPresent( + (v) -> dossierStats.setHasHintsNoRedactionsFilePresent(true) + ); + files.stream().filter(FileEntity::isHasSuggestions).findAny().ifPresent( + (v) -> dossierStats.setHasSuggestionsFilePresent(true) + ); + files.stream().filter(f -> !f.isHasRedactions()) + .filter(f -> !f.isHasHints()) + .filter(f -> !f.isHasSuggestions()) + .findAny().ifPresent( + (v) -> dossierStats.setHasNoFlagsFilePresent(true) + ); + Map fileCountPerStatus = files.stream().collect(Collectors.toMap(FileEntity::getStatus, e -> 1, Math::addExact)); + dossierStats.setFileCountPerStatus(fileCountPerStatus); + return dossierStats; + } + +} diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DossierStatsClient.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DossierStatsClient.java new file mode 100644 index 000000000..29f6de325 --- /dev/null +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DossierStatsClient.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.DossierStatsResource; +import org.springframework.cloud.openfeign.FeignClient; + +@FeignClient(name = "DossierStats", url = "http://localhost:${server.port}") +public interface DossierStatsClient extends DossierStatsResource { +} diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/DossierTesterAndProvider.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/DossierTesterAndProvider.java index 5b42106d9..155616301 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/DossierTesterAndProvider.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/DossierTesterAndProvider.java @@ -6,6 +6,7 @@ import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.Do import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DownloadFileType; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.CreateOrUpdateDossierRequest; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.Dossier; +import org.assertj.core.api.AssertionsForClassTypes; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -24,11 +25,14 @@ public class DossierTesterAndProvider { private DossierClient dossierClient; public Dossier provideTestDossier(DossierTemplate testTemplate) { + return provideTestDossier(testTemplate, "Dossier1"); + } + public Dossier provideTestDossier(DossierTemplate testTemplate, String filename) { CreateOrUpdateDossierRequest cru = new CreateOrUpdateDossierRequest(); cru.setDownloadFileTypes(Sets.newHashSet(DownloadFileType.ORIGINAL)); - cru.setDossierName("Dossier 1"); - cru.setDescription("Dossier 1"); + cru.setDossierName(filename); + cru.setDescription(filename); cru.setWatermarkEnabled(true); cru.setMemberIds(Sets.newHashSet("1")); cru.setOwnerId("1"); @@ -39,7 +43,7 @@ public class DossierTesterAndProvider { Dossier result = dossierClient.addDossier(cru); - assertThat(result.getDossierName()).isEqualTo("Dossier 1"); + assertThat(result.getDossierName()).isEqualTo(filename); Dossier loadedDossier = dossierClient.getDossierById(result.getId(),false); @@ -52,8 +56,16 @@ public class DossierTesterAndProvider { var testTemplate = dossierTemplateTesterAndProvider.provideTestTemplate(); - return provideTestDossier(testTemplate); + return provideTestDossier(testTemplate, "Dossier1"); + } + + public Dossier provideTestDossier(String filename) { + + var testTemplate = dossierTemplateTesterAndProvider.provideTestTemplate(); + + return provideTestDossier(testTemplate, filename); } + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierStatsTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierStatsTest.java new file mode 100644 index 000000000..e329e0857 --- /dev/null +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierStatsTest.java @@ -0,0 +1,112 @@ +package com.iqser.red.service.peristence.v1.server.integration.tests; + +import com.iqser.red.service.peristence.v1.server.integration.client.DossierStatsClient; +import com.iqser.red.service.peristence.v1.server.integration.client.FileClient; +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.dossiertemplate.dossier.Dossier; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierStats; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileStatus; +import org.junit.Before; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; + + +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +import static org.assertj.core.api.Assertions.assertThat; + +public class DossierStatsTest extends AbstractPersistenceServerServiceTest { + + private static final int NUMBER_PAGES_ANALYZED = 5; + @Autowired + private DossierTesterAndProvider dossierTesterAndProvider; + + @Autowired + private FileTesterAndProvider fileTesterAndProvider; + + @Autowired + private FileClient fileClient; + + @Autowired + private DossierStatsClient dossierStatsClient; + + private Dossier dossier1; + private Dossier dossier2; + + + @Before + public void setupData() { + dossier1 = dossierTesterAndProvider.provideTestDossier(); + //provides 2 files + var file1 = fileTesterAndProvider.testAndProvideFile(dossier1, "file1"); + var file2 = fileTesterAndProvider.testAndProvideFile(dossier1, "file2"); + + assertThat(fileClient.getAllStatuses().size()).isEqualTo(2); + // alter file 1 + var loadedFile1 = fileClient.getFileStatus(dossier1.getId(), file1.getId()); + assertThat(loadedFile1.isHasRedactions()).isFalse(); + fileRepository.findById(file1.getId()).ifPresent((file)->{ + file.setNumberOfAnalyses(NUMBER_PAGES_ANALYZED); + file.setHasRedactions(true); + file.setHasHints(true); + fileRepository.save(file); + }); + loadedFile1 = fileClient.getFileStatus(dossier1.getId(), file1.getId()); + assertThat(loadedFile1.isHasRedactions()).isTrue(); + + // alter file 2 + fileRepository.findById(file2.getId()).ifPresent((file)->{ + file.setHasSuggestions(true); + fileRepository.save(file); + }); + + // second dossier + dossier2 = dossierTesterAndProvider.provideTestDossier("Dossier2"); + var file3 = fileTesterAndProvider.testAndProvideFile(dossier2, "file3"); + var file4 = fileTesterAndProvider.testAndProvideFile(dossier2, "file4"); + + //alter file 4 + fileRepository.findById(file4.getId()).ifPresent((file)->{ + file.setHasHints(true); + file.setStatus(FileStatus.APPROVED); + fileRepository.save(file); + }); + } + + @Test + public void testDossierStatsWithOneDossierId() { + DossierStats dossierStats = dossierStatsClient.getDossierStats(dossier1.getId()); + assertThat(dossierStats.getDossierId()).isEqualTo(dossier1.getId()); + assertThat(dossierStats.getNumberOfFiles()).isEqualTo(2); + assertThat(dossierStats.getNumberOfAnalysedPages()).isEqualTo(NUMBER_PAGES_ANALYZED); + assertThat(dossierStats.isHasRedactionsFilePresent()).isTrue(); + assertThat(dossierStats.isHasHintsNoRedactionsFilePresent()).isFalse(); + assertThat(dossierStats.isHasSuggestionsFilePresent()).isTrue(); + assertThat(dossierStats.isHasNoFlagsFilePresent()).isFalse(); + assertThat(dossierStats.getFileCountPerStatus().get(FileStatus.PROCESSING)).isEqualTo(2); + } + + @Test + public void testDossierStatsWithMoreDossierIds() { + Set dossierIds = new HashSet<>(); + dossierIds.add(dossier1.getId()); + dossierIds.add(dossier2.getId()); + + Map dossierStatsMap = dossierStatsClient.getDossierStats(dossierIds); + + // get the result for dossier2 + DossierStats dossierStats2 = dossierStatsMap.get(dossier2.getId()); + assertThat(dossierStats2.getNumberOfFiles()).isEqualTo(2); + assertThat(dossierStats2.getNumberOfAnalysedPages()).isEqualTo(0); + assertThat(dossierStats2.isHasRedactionsFilePresent()).isFalse(); + assertThat(dossierStats2.isHasHintsNoRedactionsFilePresent()).isTrue(); + assertThat(dossierStats2.isHasSuggestionsFilePresent()).isFalse(); + assertThat(dossierStats2.isHasNoFlagsFilePresent()).isTrue(); + assertThat(dossierStats2.getFileCountPerStatus().get(FileStatus.PROCESSING)).isEqualTo(1); + assertThat(dossierStats2.getFileCountPerStatus().get(FileStatus.APPROVED)).isEqualTo(1); + } +} 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 d14aa8cf0..00a2d5597 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 @@ -62,7 +62,7 @@ public abstract class AbstractPersistenceServerServiceTest { @Autowired private DossierRepository dossierRepository; @Autowired - private FileRepository fileRepository; + protected FileRepository fileRepository; @Autowired private ViewedPagesRepository viewedPagesRepository; @Autowired From 43f7bc03273de5c4356a776b2265ff605131328e Mon Sep 17 00:00:00 2001 From: devplant Date: Mon, 11 Oct 2021 10:42:01 +0300 Subject: [PATCH 2/2] RED-2325 Dossier Stats Endpoint -rework after comments, including integration tests --- .../v1/api/model/dossiertemplate/dossier/DossierStats.java | 2 +- .../peristence/v1/server/service/DossierStatsService.java | 4 ++++ .../v1/server/integration/tests/DossierStatsTest.java | 3 +++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/DossierStats.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/DossierStats.java index 827ede7a8..31e7ed4b8 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/DossierStats.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/DossierStats.java @@ -14,13 +14,13 @@ import java.util.Map; @NoArgsConstructor @AllArgsConstructor public class DossierStats { - @JsonProperty("dossierId") private String dossierId; private int numberOfFiles; private int numberOfAnalysedPages; // sum of analysedPages private boolean hasRedactionsFilePresent; // true if at least one file in the dossier has redactions private boolean hasHintsNoRedactionsFilePresent; // true if at least one file in the dossier has hints but doesn't have redactions private boolean hasSuggestionsFilePresent; // true if at least one file in the dossier has suggestions + private boolean hasUpdatesFilePresent; //true if at least one file in the dossier has updates private boolean hasNoFlagsFilePresent; // true if at least one file in the dossier has none of the other flags private Map fileCountPerStatus; } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/DossierStatsService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/DossierStatsService.java index 151d4bb72..986d94b83 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/DossierStatsService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/DossierStatsService.java @@ -45,9 +45,13 @@ public class DossierStatsService { files.stream().filter(FileEntity::isHasSuggestions).findAny().ifPresent( (v) -> dossierStats.setHasSuggestionsFilePresent(true) ); + files.stream().filter(FileEntity::isHasUpdates).findAny().ifPresent( + (v) -> dossierStats.setHasUpdatesFilePresent(true) + ); files.stream().filter(f -> !f.isHasRedactions()) .filter(f -> !f.isHasHints()) .filter(f -> !f.isHasSuggestions()) + .filter(f -> !f.isHasUpdates()) .findAny().ifPresent( (v) -> dossierStats.setHasNoFlagsFilePresent(true) ); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierStatsTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierStatsTest.java index e329e0857..1eccb1052 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierStatsTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierStatsTest.java @@ -53,6 +53,7 @@ public class DossierStatsTest extends AbstractPersistenceServerServiceTest { file.setNumberOfAnalyses(NUMBER_PAGES_ANALYZED); file.setHasRedactions(true); file.setHasHints(true); + file.setHasUpdates(true); fileRepository.save(file); }); loadedFile1 = fileClient.getFileStatus(dossier1.getId(), file1.getId()); @@ -86,6 +87,7 @@ public class DossierStatsTest extends AbstractPersistenceServerServiceTest { assertThat(dossierStats.isHasRedactionsFilePresent()).isTrue(); assertThat(dossierStats.isHasHintsNoRedactionsFilePresent()).isFalse(); assertThat(dossierStats.isHasSuggestionsFilePresent()).isTrue(); + assertThat(dossierStats.isHasUpdatesFilePresent()).isTrue(); assertThat(dossierStats.isHasNoFlagsFilePresent()).isFalse(); assertThat(dossierStats.getFileCountPerStatus().get(FileStatus.PROCESSING)).isEqualTo(2); } @@ -105,6 +107,7 @@ public class DossierStatsTest extends AbstractPersistenceServerServiceTest { assertThat(dossierStats2.isHasRedactionsFilePresent()).isFalse(); assertThat(dossierStats2.isHasHintsNoRedactionsFilePresent()).isTrue(); assertThat(dossierStats2.isHasSuggestionsFilePresent()).isFalse(); + assertThat(dossierStats2.isHasUpdatesFilePresent()).isFalse(); assertThat(dossierStats2.isHasNoFlagsFilePresent()).isTrue(); assertThat(dossierStats2.getFileCountPerStatus().get(FileStatus.PROCESSING)).isEqualTo(1); assertThat(dossierStats2.getFileCountPerStatus().get(FileStatus.APPROVED)).isEqualTo(1);