Removed Dossier States dependency

This commit is contained in:
Timo Bejan 2022-03-21 14:23:21 +02:00
parent f83cd10be5
commit 2abcc1e704
11 changed files with 123 additions and 122 deletions

View File

@ -19,7 +19,8 @@ public class SearchRequest {
private List<String> dossierTemplateIds; private List<String> dossierTemplateIds;
private String fileId; private String fileId;
private String assignee; private String assignee;
private List<String> dossierStatus; private boolean inArchivedDossiers;
private boolean inDeletedDossiers;
private String workflowStatus; private String workflowStatus;
private Map<String, String> fileAttributes; private Map<String, String> fileAttributes;
private int page; private int page;

View File

@ -11,6 +11,10 @@
<artifactId>search-service-server-v1</artifactId> <artifactId>search-service-server-v1</artifactId>
<properties>
<persistence-service.version>1.96.0</persistence-service.version>
</properties>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>com.iqser.red.commons</groupId> <groupId>com.iqser.red.commons</groupId>
@ -24,7 +28,7 @@
<dependency> <dependency>
<groupId>com.iqser.red.service</groupId> <groupId>com.iqser.red.service</groupId>
<artifactId>persistence-service-api-v1</artifactId> <artifactId>persistence-service-api-v1</artifactId>
<version>1.48.0</version> <version>${persistence-service.version}</version>
</dependency> </dependency>
<!-- commons --> <!-- commons -->

View File

@ -23,7 +23,8 @@ public class SearchController implements SearchResource {
searchRequest.getDossierIds(), searchRequest.getDossierIds(),
searchRequest.getFileId(), searchRequest.getFileId(),
searchRequest.getAssignee(), searchRequest.getAssignee(),
searchRequest.getDossierStatus(), searchRequest.isInDeletedDossiers(),
searchRequest.isInArchivedDossiers(),
searchRequest.getWorkflowStatus(), searchRequest.getWorkflowStatus(),
searchRequest.getFileAttributes(), searchRequest.getFileAttributes(),
searchRequest.getPage(), searchRequest.getPage(),

View File

@ -20,7 +20,8 @@ public class IndexDocument implements Serializable {
private String filename; private String filename;
private OffsetDateTime date; private OffsetDateTime date;
private String assignee; private String assignee;
private String dossierStatus; private boolean dossierDeleted;
private boolean dossierArchived;
private String workflowStatus; private String workflowStatus;
@Builder.Default @Builder.Default

View File

@ -14,8 +14,9 @@ import lombok.NoArgsConstructor;
public class IndexDocumentUpdate { public class IndexDocumentUpdate {
private String assignee; private String assignee;
private String dossierStatus;
private String workflowStatus; private String workflowStatus;
private boolean dossierDeleted;
private boolean dossierArchived;
private List<IndexFileAttribute> fileAttributes; private List<IndexFileAttribute> fileAttributes;
} }

View File

@ -67,7 +67,8 @@ public class IndexingMessageReceiver {
case UPDATE: case UPDATE:
fileStatus = fileStatusClient.getFileStatus(indexRequest.getDossierId(), indexRequest.getFileId()); fileStatus = fileStatusClient.getFileStatus(indexRequest.getDossierId(), indexRequest.getFileId());
dossier = dossierClient.getDossierById(indexRequest.getDossierId(), true, true); dossier = dossierClient.getDossierById(indexRequest.getDossierId(), true, true);
documentUpdateService.updateDocument(indexRequest.getFileId(), fileStatus.getAssignee(), dossier.getStatus(), fileStatus.getWorkflowStatus() documentUpdateService.updateDocument(indexRequest.getFileId(), fileStatus.getAssignee(),
dossier.getSoftDeletedTime() !=null, dossier.getArchivedTime() != null, fileStatus.getWorkflowStatus()
.name(), fileStatus.getFileAttributes()); .name(), fileStatus.getFileAttributes());
log.info("Successfully updated {}", indexRequest); log.info("Successfully updated {}", indexRequest);
break; break;
@ -122,7 +123,8 @@ public class IndexingMessageReceiver {
fileStatusProcessingUpdateClient.indexing(dossier.getId(), file.getId()); fileStatusProcessingUpdateClient.indexing(dossier.getId(), file.getId());
Text text = textStorageService.getText(dossier.getId(), file.getId()); Text text = textStorageService.getText(dossier.getId(), file.getId());
documentIndexService.indexDocument(dossier.getDossierTemplateId(), dossier.getId(), file.getId(), file.getFilename(), text, file.getAssignee(), dossier.getStatus(), file.getWorkflowStatus(), file.getFileAttributes()); documentIndexService.indexDocument(dossier.getDossierTemplateId(), dossier.getId(), file.getId(), file.getFilename(), text, file.getAssignee(),
dossier.getSoftDeletedTime() !=null, dossier.getArchivedTime() != null, file.getWorkflowStatus(), file.getFileAttributes());
fileStatusProcessingUpdateClient.indexingSuccessful(dossier.getId(), file.getId()); fileStatusProcessingUpdateClient.indexingSuccessful(dossier.getId(), file.getId());
log.info("Successfully indexed dossier {} file {}", dossier.getId(), file.getId()); log.info("Successfully indexed dossier {} file {}", dossier.getId(), file.getId());
} }

View File

@ -16,7 +16,6 @@ import org.springframework.stereotype.Service;
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
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.WorkflowStatus; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.WorkflowStatus;
import com.iqser.red.service.search.v1.server.client.ElasticsearchClient; import com.iqser.red.service.search.v1.server.client.ElasticsearchClient;
import com.iqser.red.service.search.v1.server.exception.IndexException; import com.iqser.red.service.search.v1.server.exception.IndexException;
@ -41,12 +40,13 @@ public class DocumentIndexService {
private final ObjectMapper objectMapper; private final ObjectMapper objectMapper;
public void indexDocument(String dossierTemplateId, String dossierId, String fileId, String filename, Text text, String assignee, DossierStatus dossierStatus, public void indexDocument(String dossierTemplateId, String dossierId, String fileId, String filename, Text text, String assignee,
boolean deleted, boolean archived,
WorkflowStatus workflowStatus, Map<String, String> fileAttributes) { WorkflowStatus workflowStatus, Map<String, String> fileAttributes) {
IndexRequest indexRequest = new IndexRequest(INDEX_NAME).id(fileId); IndexRequest indexRequest = new IndexRequest(INDEX_NAME).id(fileId);
indexRequest.setRefreshPolicy(settings.getRefreshPolicy()); indexRequest.setRefreshPolicy(settings.getRefreshPolicy());
indexRequest.source(toJson(convert(dossierTemplateId, dossierId, fileId, filename, text, assignee, dossierStatus, workflowStatus, fileAttributes)), XContentType.JSON); indexRequest.source(toJson(convert(dossierTemplateId, dossierId, fileId, filename, text, assignee, deleted, archived, workflowStatus, fileAttributes)), XContentType.JSON);
try { try {
client.index(indexRequest, RequestOptions.DEFAULT); client.index(indexRequest, RequestOptions.DEFAULT);
@ -66,7 +66,8 @@ public class DocumentIndexService {
} }
private IndexDocument convert(String dossierTemplateId, String dossierId, String fileId, String filename, Text text, String assignee, DossierStatus dossierStatus, private IndexDocument convert(String dossierTemplateId, String dossierId, String fileId, String filename, Text text, String assignee,
boolean deleted, boolean archived,
WorkflowStatus workflowStatus, Map<String, String> fileAttributes) { WorkflowStatus workflowStatus, Map<String, String> fileAttributes) {
return IndexDocument.builder() return IndexDocument.builder()
@ -78,7 +79,8 @@ public class DocumentIndexService {
.date(OffsetDateTime.now()) .date(OffsetDateTime.now())
.fileAttributes(convertFileAttributes(fileAttributes)) .fileAttributes(convertFileAttributes(fileAttributes))
.assignee(assignee) .assignee(assignee)
.dossierStatus(dossierStatus.name()) .dossierDeleted(deleted)
.dossierArchived(archived)
.workflowStatus(workflowStatus.name()) .workflowStatus(workflowStatus.name())
.build(); .build();
} }

View File

@ -1,7 +1,6 @@
package com.iqser.red.service.search.v1.server.service; package com.iqser.red.service.search.v1.server.service;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierStatus;
import com.iqser.red.service.search.v1.server.client.ElasticsearchClient; import com.iqser.red.service.search.v1.server.client.ElasticsearchClient;
import com.iqser.red.service.search.v1.server.model.IndexDocumentUpdate; import com.iqser.red.service.search.v1.server.model.IndexDocumentUpdate;
import com.iqser.red.service.search.v1.server.model.IndexFileAttribute; import com.iqser.red.service.search.v1.server.model.IndexFileAttribute;
@ -27,11 +26,12 @@ public class DocumentUpdateService {
private final ElasticsearchClient client; private final ElasticsearchClient client;
@SneakyThrows @SneakyThrows
public void updateDocument(String fileId, String assignee, DossierStatus dossierStatus, String workflowStatus, Map<String, String> fileAttributes) { public void updateDocument(String fileId, String assignee, boolean deleted, boolean archived, String workflowStatus, Map<String, String> fileAttributes) {
var indexUpdateRequest = IndexDocumentUpdate.builder() var indexUpdateRequest = IndexDocumentUpdate.builder()
.assignee(assignee) .assignee(assignee)
.dossierStatus(dossierStatus.name()) .dossierDeleted(deleted)
.dossierArchived(archived)
.workflowStatus(workflowStatus) .workflowStatus(workflowStatus)
.fileAttributes(convertFileAttributes(fileAttributes)) .fileAttributes(convertFileAttributes(fileAttributes))
.build(); .build();

View File

@ -1,7 +1,6 @@
package com.iqser.red.service.search.v1.server.service; package com.iqser.red.service.search.v1.server.service;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierStatus;
import com.iqser.red.service.search.v1.model.MatchedDocument; import com.iqser.red.service.search.v1.model.MatchedDocument;
import com.iqser.red.service.search.v1.model.MatchedSection; import com.iqser.red.service.search.v1.model.MatchedSection;
import com.iqser.red.service.search.v1.model.SearchResult; import com.iqser.red.service.search.v1.model.SearchResult;
@ -47,7 +46,8 @@ public class SearchService {
List<String> dossierIds, List<String> dossierIds,
String fileId, String fileId,
String assignee, String assignee,
List<String> dossierStatus, boolean inDeletedDossiers,
boolean inArchivedDossiers,
String workflowStatus, String workflowStatus,
Map<String, String> fileAttributes, Map<String, String> fileAttributes,
int page, int page,
@ -57,7 +57,9 @@ public class SearchService {
Query query = QueryStringConverter.convert(queryString); Query query = QueryStringConverter.convert(queryString);
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder().query(convertQuery(query, dossierTemplateIds, dossierIds, fileId, assignee, getDossierStatusOrDefault(dossierStatus), workflowStatus, fileAttributes, returnSections)) SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder().query(
convertQuery(query, dossierTemplateIds, dossierIds, fileId, assignee,
inDeletedDossiers, inArchivedDossiers, workflowStatus, fileAttributes, returnSections))
.from(getPageOrDefault(page) * getPageSizeOrDefault(pageSize)) .from(getPageOrDefault(page) * getPageSizeOrDefault(pageSize))
.size(getPageSizeOrDefault(pageSize)) .size(getPageSizeOrDefault(pageSize))
.fetchSource(new String[]{"dossierId", "dossierTemplateId", "fileId", "assignee", "dossierStatus", "workflowStatus", "fileAttributes"}, new String[]{"sections"}) .fetchSource(new String[]{"dossierId", "dossierTemplateId", "fileId", "assignee", "dossierStatus", "workflowStatus", "fileAttributes"}, new String[]{"sections"})
@ -88,7 +90,8 @@ public class SearchService {
List<String> dossierIds, List<String> dossierIds,
String fileId, String fileId,
String assignee, String assignee,
List<String> dossierStatus, boolean inDeletedDossiers,
boolean inArchivedDossiers,
String workflowStatus, String workflowStatus,
Map<String, String> fileAttributes, Map<String, String> fileAttributes,
boolean returnSections boolean returnSections
@ -164,18 +167,12 @@ public class SearchService {
filterQuery.must(QueryBuilders.matchQuery("assignee", assignee)); filterQuery.must(QueryBuilders.matchQuery("assignee", assignee));
} }
if (dossierStatus != null && !dossierStatus.isEmpty()) {
var dossierStatusQueryBuilder = QueryBuilders.boolQuery(); var dossierStatusQueryBuilder = QueryBuilders.boolQuery();
for (String status : dossierStatus) { dossierStatusQueryBuilder = dossierStatusQueryBuilder.must(QueryBuilders.matchQuery("dossierArchived", inArchivedDossiers));
if (StringUtils.isNotEmpty(status)) { dossierStatusQueryBuilder = dossierStatusQueryBuilder.must(QueryBuilders.matchQuery("dossierDeleted", inDeletedDossiers));
dossierStatusQueryBuilder = dossierStatusQueryBuilder.should(QueryBuilders.matchQuery("dossierStatus", status));
}
}
filterQuery.must(dossierStatusQueryBuilder); filterQuery.must(dossierStatusQueryBuilder);
}
if (StringUtils.isNotEmpty(workflowStatus)) { if (StringUtils.isNotEmpty(workflowStatus)) {
filterQuery.must(QueryBuilders.matchQuery("workflowStatus", workflowStatus)); filterQuery.must(QueryBuilders.matchQuery("workflowStatus", workflowStatus));
@ -294,12 +291,4 @@ public class SearchService {
} }
private List<String> getDossierStatusOrDefault(List<String> dossierStatus) {
if (dossierStatus == null || dossierStatus.isEmpty()) {
return List.of(DossierStatus.ACTIVE.name());
}
return dossierStatus;
}
} }

View File

@ -22,8 +22,11 @@
"workflowStatus": { "workflowStatus": {
"type": "keyword" "type": "keyword"
}, },
"dossierStatus": { "dossierArchived": {
"type": "keyword" "type": "boolean"
},
"dossierDeleted": {
"type": "boolean"
}, },
"fileAttributes" : { "fileAttributes" : {
"type": "nested", "type": "nested",

View File

@ -1,7 +1,6 @@
package com.iqser.red.service.search.v1.server.service; package com.iqser.red.service.search.v1.server.service;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
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.WorkflowStatus; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.WorkflowStatus;
import com.iqser.red.service.search.v1.model.MatchedDocument; import com.iqser.red.service.search.v1.model.MatchedDocument;
import com.iqser.red.service.search.v1.model.SearchResult; import com.iqser.red.service.search.v1.model.SearchResult;
@ -71,11 +70,11 @@ public class SearchTest extends AbstractElasticsearchIntegrationTest {
ClassPathResource textResource = new ClassPathResource("files/Text2.json"); ClassPathResource textResource = new ClassPathResource("files/Text2.json");
Text text = objectMapper.readValue(textResource.getInputStream(), Text.class); Text text = objectMapper.readValue(textResource.getInputStream(), Text.class);
documentIndexService.indexDocument("template1", "dossierId1", "fileId1", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-1.pdf", text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); documentIndexService.indexDocument("template1", "dossierId1", "fileId1", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-1.pdf", text, "UserId", false, false, WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
documentIndexService.indexDocument("template2", "dossierId2", "fileId2", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-2.pdf", text, "UserId2", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F2Key", "F2Value")); documentIndexService.indexDocument("template2", "dossierId2", "fileId2", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-2.pdf", text, "UserId2", false, false, WorkflowStatus.NEW, Map.of("F2Key", "F2Value"));
// Act & Assert 1 // Act & Assert 1
SearchResult result = searchService.search("F1Value", null, null, null, null, null, null, null, 0, 10, false); SearchResult result = searchService.search("F1Value", null, null, null, null, false, false, null, null, 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(1); assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
} }
@ -87,10 +86,10 @@ public class SearchTest extends AbstractElasticsearchIntegrationTest {
ClassPathResource textResource = new ClassPathResource("files/Text2.json"); ClassPathResource textResource = new ClassPathResource("files/Text2.json");
Text text = objectMapper.readValue(textResource.getInputStream(), Text.class); Text text = objectMapper.readValue(textResource.getInputStream(), Text.class);
documentIndexService.indexDocument("template1", "dossierId1", "fileId1", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-1.pdf", text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value", "F2Key", "F2Value")); documentIndexService.indexDocument("template1", "dossierId1", "fileId1", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-1.pdf", text, "UserId", false, false, WorkflowStatus.NEW, Map.of("F1Key", "F1Value", "F2Key", "F2Value"));
// Act & Assert 1 // Act & Assert 1
SearchResult result = searchService.search("S-Metolachlor", List.of("template1"), List.of("dossierId1"), "fileId1", "UserId", List.of(DossierStatus.ACTIVE.name(), DossierStatus.DELETED.name()), WorkflowStatus.NEW.name(), Map.of("F1Key", "F1Value"), 0, 10, false); SearchResult result = searchService.search("S-Metolachlor", List.of("template1"), List.of("dossierId1"), "fileId1", "UserId", false, false, WorkflowStatus.NEW.name(), Map.of("F1Key", "F1Value"), 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(1); assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
System.out.println(result); System.out.println(result);
@ -107,30 +106,30 @@ public class SearchTest extends AbstractElasticsearchIntegrationTest {
ClassPathResource textResource = new ClassPathResource("files/Text2.json"); ClassPathResource textResource = new ClassPathResource("files/Text2.json");
Text text = objectMapper.readValue(textResource.getInputStream(), Text.class); Text text = objectMapper.readValue(textResource.getInputStream(), Text.class);
documentIndexService.indexDocument("template1", "dossierId1", "fileId1", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-1.pdf", text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); documentIndexService.indexDocument("template1", "dossierId1", "fileId1", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-1.pdf", text, "UserId", false, false, WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
documentIndexService.indexDocument("template2", "dossierId2", "fileId2", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-2.pdf", text, "UserId2", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F2Key", "F2Value")); documentIndexService.indexDocument("template2", "dossierId2", "fileId2", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-2.pdf", text, "UserId2", false, false, WorkflowStatus.NEW, Map.of("F2Key", "F2Value"));
// Act & Assert 1 // Act & Assert 1
SearchResult result = searchService.search("S-Metolachlor", null, null, null, null, List.of(DossierStatus.ACTIVE.name()), WorkflowStatus.APPROVED.name(), null, 0, 10, false); SearchResult result = searchService.search("S-Metolachlor", null, null, null, null, false, false, WorkflowStatus.APPROVED.name(), null, 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(0); assertThat(result.getMatchedDocuments().size()).isEqualTo(0);
// Act & Assert 2 // Act & Assert 2
result = searchService.search("S-Metolachlor", null, null, null, null, List.of(DossierStatus.ACTIVE.name()), WorkflowStatus.NEW.name(), null, -1, 0, false); result = searchService.search("S-Metolachlor", null, null, null, null, false, false, WorkflowStatus.NEW.name(), null, -1, 0, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(2); assertThat(result.getMatchedDocuments().size()).isEqualTo(2);
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1"); assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1");
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2"); assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2");
// Act & Assert 3 // Act & Assert 3
documentUpdateService.updateDocument("fileId1", "UserId2", DossierStatus.ACTIVE, WorkflowStatus.APPROVED.name(), Map.of("F2Key", "F2Value")); documentUpdateService.updateDocument("fileId1", "UserId2", false, false, WorkflowStatus.APPROVED.name(), Map.of("F2Key", "F2Value"));
Thread.sleep(UPDATE_TIMER); Thread.sleep(UPDATE_TIMER);
result = searchService.search("S-Metolachlor", null, null, null, "UserId2", List.of(DossierStatus.ACTIVE.name()), WorkflowStatus.NEW.name(), Map.of("F2Key", "F2Value"), 0, 10, false); result = searchService.search("S-Metolachlor", null, null, null, "UserId2", false, false, WorkflowStatus.NEW.name(), Map.of("F2Key", "F2Value"), 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(1); assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2"); assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2");
// Act & Assert 4 // Act & Assert 4
documentUpdateService.updateDocument("fileId2", "UserId2", DossierStatus.ACTIVE, WorkflowStatus.APPROVED.name(), Map.of("F2Key", "F2Value")); documentUpdateService.updateDocument("fileId2", "UserId2", false, false, WorkflowStatus.APPROVED.name(), Map.of("F2Key", "F2Value"));
Thread.sleep(UPDATE_TIMER); Thread.sleep(UPDATE_TIMER);
result = searchService.search("S-Metolachlor", null, null, null, "UserId2", List.of(DossierStatus.ACTIVE.name()), WorkflowStatus.APPROVED.name(), Map.of("F2Key", "F2Value"), 0, 10, false); result = searchService.search("S-Metolachlor", null, null, null, "UserId2", false, false, WorkflowStatus.APPROVED.name(), Map.of("F2Key", "F2Value"), 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(2); assertThat(result.getMatchedDocuments().size()).isEqualTo(2);
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1"); assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1");
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2"); assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2");
@ -146,18 +145,18 @@ public class SearchTest extends AbstractElasticsearchIntegrationTest {
ClassPathResource textResource = new ClassPathResource("files/Text2.json"); ClassPathResource textResource = new ClassPathResource("files/Text2.json");
Text text = objectMapper.readValue(textResource.getInputStream(), Text.class); Text text = objectMapper.readValue(textResource.getInputStream(), Text.class);
documentIndexService.indexDocument("template1", "dossierId1", "fileId1", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-1.pdf", text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); documentIndexService.indexDocument("template1", "dossierId1", "fileId1", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-1.pdf", text, "UserId", false, false, WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
documentIndexService.indexDocument("template2", "dossierId2", "fileId2", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-2.pdf", text, "UserId2", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); documentIndexService.indexDocument("template2", "dossierId2", "fileId2", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-2.pdf", text, "UserId2", false, false, WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
// Act & Assert 1 // Act & Assert 1
SearchResult result = searchService.search("S-Metolachlor", null, null, null, "UserId2", null, null, null, 0, 10, false); SearchResult result = searchService.search("S-Metolachlor", null, null, null, "UserId2", false, false, null, null, 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(1); assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2"); assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2");
// Act & Assert 2 // Act & Assert 2
documentUpdateService.updateDocument("fileId1", "UserId2", DossierStatus.ACTIVE, WorkflowStatus.APPROVED.name(), Map.of("U2Key", "U2Value")); documentUpdateService.updateDocument("fileId1", "UserId2", false, false, WorkflowStatus.APPROVED.name(), Map.of("U2Key", "U2Value"));
Thread.sleep(UPDATE_TIMER); Thread.sleep(UPDATE_TIMER);
result = searchService.search("S-Metolachlor", null, null, null, "UserId2", null, null, null, 0, 10, false); result = searchService.search("S-Metolachlor", null, null, null, "UserId2", false, false, null, null, 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(2); assertThat(result.getMatchedDocuments().size()).isEqualTo(2);
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1"); assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1");
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2"); assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2");
@ -174,35 +173,35 @@ public class SearchTest extends AbstractElasticsearchIntegrationTest {
ClassPathResource textResource = new ClassPathResource("files/Text2.json"); ClassPathResource textResource = new ClassPathResource("files/Text2.json");
Text text = objectMapper.readValue(textResource.getInputStream(), Text.class); Text text = objectMapper.readValue(textResource.getInputStream(), Text.class);
documentIndexService.indexDocument("template1", "dossierId1", "fileId1", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-1.pdf", text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); documentIndexService.indexDocument("template1", "dossierId1", "fileId1", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-1.pdf", text, "UserId", false, false, WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
documentIndexService.indexDocument("template2", "dossierId2", "fileId2", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-2.pdf", text, "UserId2", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F2Key", "F2Value")); documentIndexService.indexDocument("template2", "dossierId2", "fileId2", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-2.pdf", text, "UserId2", false, false, WorkflowStatus.NEW, Map.of("F2Key", "F2Value"));
// Act & Assert 1 // Act & Assert 1
SearchResult result = searchService.search("S-Metolachlor", null, null, null, null, List.of(DossierStatus.ACTIVE.name()), WorkflowStatus.APPROVED.name(), null, 0, 10, false); SearchResult result = searchService.search("S-Metolachlor", null, null, null, null, false, false, WorkflowStatus.APPROVED.name(), null, 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(0); assertThat(result.getMatchedDocuments().size()).isEqualTo(0);
// Act & Assert 2 // Act & Assert 2
result = searchService.search("S-Metolachlor", null, null, null, null, List.of(DossierStatus.ACTIVE.name()), WorkflowStatus.NEW.name(), null, 0, 10, false); result = searchService.search("S-Metolachlor", null, null, null, null, false, false, WorkflowStatus.NEW.name(), null, 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(2); assertThat(result.getMatchedDocuments().size()).isEqualTo(2);
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1"); assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1");
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2"); assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2");
// Act & Assert 3 // Act & Assert 3
documentUpdateService.updateDocument("fileId1", "UserId2", DossierStatus.ACTIVE, WorkflowStatus.APPROVED.name(), Map.of("U2Key", "U2Value")); documentUpdateService.updateDocument("fileId1", "UserId2", false, false, WorkflowStatus.APPROVED.name(), Map.of("U2Key", "U2Value"));
Thread.sleep(UPDATE_TIMER); Thread.sleep(UPDATE_TIMER);
result = searchService.search("S-Metolachlor", null, null, null, null, List.of(DossierStatus.ACTIVE.name()), WorkflowStatus.APPROVED.name(), null, 0, 10, false); result = searchService.search("S-Metolachlor", null, null, null, null, false, false, WorkflowStatus.APPROVED.name(), null, 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(1); assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1"); assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1");
// Act & Assert 4 // Act & Assert 4
result = searchService.search("S-Metolachlor", null, null, null, null, List.of(DossierStatus.ACTIVE.name()), WorkflowStatus.NEW.name(), null, 0, 10, false); result = searchService.search("S-Metolachlor", null, null, null, null, false, false, WorkflowStatus.NEW.name(), null, 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(1); assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2"); assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2");
// Act & Assert 5 // Act & Assert 5
documentUpdateService.updateDocument("fileId2", "UserId2", DossierStatus.ACTIVE, WorkflowStatus.APPROVED.name(), Map.of("U2Key", "U2Value")); documentUpdateService.updateDocument("fileId2", "UserId2", false, false, WorkflowStatus.APPROVED.name(), Map.of("U2Key", "U2Value"));
Thread.sleep(UPDATE_TIMER); Thread.sleep(UPDATE_TIMER);
result = searchService.search("S-Metolachlor", null, null, null, null, List.of(DossierStatus.ACTIVE.name()), WorkflowStatus.APPROVED.name(), null, 0, 10, false); result = searchService.search("S-Metolachlor", null, null, null, null, false, false, WorkflowStatus.APPROVED.name(), null, 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(2); assertThat(result.getMatchedDocuments().size()).isEqualTo(2);
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1"); assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1");
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2"); assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2");
@ -219,46 +218,44 @@ public class SearchTest extends AbstractElasticsearchIntegrationTest {
ClassPathResource textResource = new ClassPathResource("files/Text2.json"); ClassPathResource textResource = new ClassPathResource("files/Text2.json");
Text text = objectMapper.readValue(textResource.getInputStream(), Text.class); Text text = objectMapper.readValue(textResource.getInputStream(), Text.class);
documentIndexService.indexDocument("template1", "dossierId1", "fileId1", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-1.pdf", text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); documentIndexService.indexDocument("template1", "dossierId1", "fileId1", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-1.pdf", text, "UserId", false, false, WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
documentIndexService.indexDocument("template2", "dossierId2", "fileId2", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-2.pdf", text, "UserId2", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F2Key", "F2Value")); documentIndexService.indexDocument("template2", "dossierId2", "fileId2", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-2.pdf", text, "UserId2", false, false, WorkflowStatus.NEW, Map.of("F2Key", "F2Value"));
// Act & Assert 1 // Act & Assert 1
SearchResult result = searchService.search("S-Metolachlor", null, null, null, null, List.of(DossierStatus.DELETED.name()), null, null, 0, 10, false); SearchResult result = searchService.search("S-Metolachlor", null, null, null, null, true, false, null, null, 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(0); assertThat(result.getMatchedDocuments().size()).isEqualTo(0);
// Act & Assert 2 // Act & Assert 2
result = searchService.search("S-Metolachlor", null, null, null, null, List.of(DossierStatus.ACTIVE.name()), null, null, 0, 10, false); result = searchService.search("S-Metolachlor", null, null, null, null, false, false, null, null, 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(2); assertThat(result.getMatchedDocuments().size()).isEqualTo(2);
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1"); assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1");
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2"); assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2");
// Act & Assert 2 // Act & Assert 2
result = searchService.search("S-Metolachlor", null, null, null, null, List.of(DossierStatus.ACTIVE.name(), DossierStatus.ARCHIVED.name()), null, null, 0, 10, false); result = searchService.search("S-Metolachlor", null, null, null, null, false, true, null, null, 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(2); assertThat(result.getMatchedDocuments().size()).isEqualTo(0);
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1");
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2");
// Act & Assert 3 // Act & Assert 3
documentUpdateService.updateDocument("fileId1", "UserId2", DossierStatus.ARCHIVED, WorkflowStatus.APPROVED.name(), Map.of("U2Key", "U2Value")); documentUpdateService.updateDocument("fileId1", "UserId2", false, true, WorkflowStatus.APPROVED.name(), Map.of("U2Key", "U2Value"));
Thread.sleep(UPDATE_TIMER); Thread.sleep(UPDATE_TIMER);
result = searchService.search("S-Metolachlor", null, null, null, null, List.of(DossierStatus.ACTIVE.name(), DossierStatus.DELETED.name()), null, null, 0, 10, false); result = searchService.search("S-Metolachlor", null, null, null, null, false, false, null, null, 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(1); assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2"); assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2");
// Act & Assert 4 // Act & Assert 4
result = searchService.search("S-Metolachlor", null, null, null, null, List.of(DossierStatus.ARCHIVED.name()), null, null, 0, 10, false); result = searchService.search("S-Metolachlor", null, null, null, null, false, true, null, null, 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(1); assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1"); assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1");
// Act & Assert 5 // Act & Assert 5
documentUpdateService.updateDocument("fileId2", "UserId2", DossierStatus.DELETED, WorkflowStatus.APPROVED.name(), Map.of("U2Key", "U2Value")); documentUpdateService.updateDocument("fileId2", "UserId2", true, false, WorkflowStatus.APPROVED.name(), Map.of("U2Key", "U2Value"));
Thread.sleep(UPDATE_TIMER); Thread.sleep(UPDATE_TIMER);
result = searchService.search("S-Metolachlor", null, null, null, null, List.of(DossierStatus.ACTIVE.name()), null, null, 0, 10, false); result = searchService.search("S-Metolachlor", null, null, null, null, false, false, null, null, 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(0); assertThat(result.getMatchedDocuments().size()).isEqualTo(0);
// Act & Assert 6 // Act & Assert 6
result = searchService.search("S-Metolachlor", null, null, null, null, List.of(DossierStatus.ARCHIVED.name(), DossierStatus.DELETED.name()), null, null, 0, 10, false); result = searchService.search("S-Metolachlor", null, null, null, null, false, true, null, null, 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(2); assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
} }
@ -272,53 +269,53 @@ public class SearchTest extends AbstractElasticsearchIntegrationTest {
ClassPathResource textResource = new ClassPathResource("files/Text2.json"); ClassPathResource textResource = new ClassPathResource("files/Text2.json");
Text text = objectMapper.readValue(textResource.getInputStream(), Text.class); Text text = objectMapper.readValue(textResource.getInputStream(), Text.class);
documentIndexService.indexDocument("template1", "dossierId1", "fileId1", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-1.pdf", text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); documentIndexService.indexDocument("template1", "dossierId1", "fileId1", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-1.pdf", text, "UserId", false, false, WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
documentIndexService.indexDocument("template2", "dossierId2", "fileId2", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-2.pdf", text, "UserId2", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F2Key", "F2Value")); documentIndexService.indexDocument("template2", "dossierId2", "fileId2", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-2.pdf", text, "UserId2", false, false, WorkflowStatus.NEW, Map.of("F2Key", "F2Value"));
// Act & Assert 1 // Act & Assert 1
SearchResult result = searchService.search("S-Metolachlor", null, null, null, null, null, null, Map.of("F1Key", "F1Value"), 0, 10, false); SearchResult result = searchService.search("S-Metolachlor", null, null, null, null, false, false, null, Map.of("F1Key", "F1Value"), 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(1); assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1"); assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1");
// Act & Assert 2 // Act & Assert 2
result = searchService.search("S-Metolachlor", null, null, null, null, null, null, Map.of("F2Key", "F2Value"), 0, 10, false); result = searchService.search("S-Metolachlor", null, null, null, null, false, false, null, Map.of("F2Key", "F2Value"), 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(1); assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2"); assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2");
// Act & Assert 3 // Act & Assert 3
result = searchService.search("S-Metolachlor", null, null, null, null, null, null, Map.of("F2Key", "does-not-exist"), 0, 10, false); result = searchService.search("S-Metolachlor", null, null, null, null, false, false, null, Map.of("F2Key", "does-not-exist"), 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(0); assertThat(result.getMatchedDocuments().size()).isEqualTo(0);
// Act & Assert 4 // Act & Assert 4
result = searchService.search("S-Metolachlor", null, null, null, null, null, null, Map.of("Key-does-not-exist", "F1Value"), 0, 10, false); result = searchService.search("S-Metolachlor", null, null, null, null, false, false, null, Map.of("Key-does-not-exist", "F1Value"), 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(0); assertThat(result.getMatchedDocuments().size()).isEqualTo(0);
// Act & Assert 5 // Act & Assert 5
result = searchService.search("S-Metolachlor", null, null, null, null, null, null, Map.of("F1Key", "F1Value", "F2Key", "F2Value"), 0, 10, false); result = searchService.search("S-Metolachlor", null, null, null, null, false, false, null, Map.of("F1Key", "F1Value", "F2Key", "F2Value"), 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(0); assertThat(result.getMatchedDocuments().size()).isEqualTo(0);
// Act & Assert 6 // Act & Assert 6
documentUpdateService.updateDocument("fileId1", "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW.name(), Map.of("F1Key", "F1ValueNEW")); documentUpdateService.updateDocument("fileId1", "UserId", false, false, WorkflowStatus.NEW.name(), Map.of("F1Key", "F1ValueNEW"));
Thread.sleep(UPDATE_TIMER); Thread.sleep(UPDATE_TIMER);
result = searchService.search("S-Metolachlor", null, null, null, null, null, null, Map.of("F1Key", "F1Value"), 0, 10, false); result = searchService.search("S-Metolachlor", null, null, null, null, false, false, null, Map.of("F1Key", "F1Value"), 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(0); assertThat(result.getMatchedDocuments().size()).isEqualTo(0);
// Act & Assert 7 // Act & Assert 7
result = searchService.search("S-Metolachlor", null, null, null, null, null, null, Map.of("F1Key", "F1ValueNEW"), 0, 10, false); result = searchService.search("S-Metolachlor", null, null, null, null, false, false, null, Map.of("F1Key", "F1ValueNEW"), 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(1); assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1"); assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1");
// Act & Assert 8 // Act & Assert 8
documentUpdateService.updateDocument("fileId1", "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW.name(), Map.of("F1Key", "F1Value", "F2Key", "F2Value")); documentUpdateService.updateDocument("fileId1", "UserId", false, false, WorkflowStatus.NEW.name(), Map.of("F1Key", "F1Value", "F2Key", "F2Value"));
Thread.sleep(UPDATE_TIMER); Thread.sleep(UPDATE_TIMER);
result = searchService.search("S-Metolachlor", null, null, null, null, null, null, Map.of("F1Key", "F1Value", "F2Key", "F2Value"), 0, 10, false); result = searchService.search("S-Metolachlor", null, null, null, null, false, false, null, Map.of("F1Key", "F1Value", "F2Key", "F2Value"), 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(1); assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1"); assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1");
// Act & Assert 9 // Act & Assert 9
documentUpdateService.updateDocument("fileId1", "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW.name(), null); documentUpdateService.updateDocument("fileId1", "UserId", false, false, WorkflowStatus.NEW.name(), null);
Thread.sleep(UPDATE_TIMER); Thread.sleep(UPDATE_TIMER);
result = searchService.search("S-Metolachlor", null, null, null, null, null, null, Map.of("F1Key", "F1Value"), 0, 10, false); result = searchService.search("S-Metolachlor", null, null, null, null, false, false, null, Map.of("F1Key", "F1Value"), 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(0); assertThat(result.getMatchedDocuments().size()).isEqualTo(0);
} }
@ -332,11 +329,11 @@ public class SearchTest extends AbstractElasticsearchIntegrationTest {
ClassPathResource textResource2 = new ClassPathResource("files/Text2.json"); ClassPathResource textResource2 = new ClassPathResource("files/Text2.json");
Text text2 = objectMapper.readValue(textResource2.getInputStream(), Text.class); Text text2 = objectMapper.readValue(textResource2.getInputStream(), Text.class);
documentIndexService.indexDocument("template1", "dossierId1", "fileId1", "Single Study - Oral (Gavage) Mouse.pdf", text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); documentIndexService.indexDocument("template1", "dossierId1", "fileId1", "Single Study - Oral (Gavage) Mouse.pdf", text, "UserId", false, false, WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
documentIndexService.indexDocument("template2", "dossierId2", "fileId2", "S-Metolachlor_RAR_01_Volume_1_2018-09-06.pdf", text2, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); documentIndexService.indexDocument("template2", "dossierId2", "fileId2", "S-Metolachlor_RAR_01_Volume_1_2018-09-06.pdf", text2, "UserId", false, false, WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
// Act & Assert 1 // Act & Assert 1
SearchResult result = searchService.search("S-Metolachlor", null, Arrays.asList("dossierId1", "dossierId2"), null, null, null, null, null, 0, 10, false); SearchResult result = searchService.search("S-Metolachlor", null, Arrays.asList("dossierId1", "dossierId2"), null, null, false, false, null, null, 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(1); assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
@ -344,17 +341,17 @@ public class SearchTest extends AbstractElasticsearchIntegrationTest {
documentDeleteService.deleteDocument("fileId1"); documentDeleteService.deleteDocument("fileId1");
// Act & Assert 2 // Act & Assert 2
result = searchService.search("hans klaus single", null, Arrays.asList("dossierId1", "dossierId2"), null, null, null, null, null, 0, 10, true); result = searchService.search("hans klaus single", null, Arrays.asList("dossierId1", "dossierId2"), null, null, false, false, null, null, 0, 10, true);
assertThat(result.getMatchedDocuments().size()).isEqualTo(1); assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
// Act & Assert 3 // Act & Assert 3
result = searchService.search("hans klaus single", null, Arrays.asList("dossierId3", "dossierId4"), null, null, null, null, null, 0, 10, true); result = searchService.search("hans klaus single", null, Arrays.asList("dossierId3", "dossierId4"), null, null, false, false, null, null, 0, 10, true);
assertThat(result.getMatchedDocuments().size()).isEqualTo(0); assertThat(result.getMatchedDocuments().size()).isEqualTo(0);
// Act & Assert 4 // Act & Assert 4
result = searchService.search("hans klaus single", Arrays.asList("template1", "template2"), null, null, null, null, null, null, 0, 10, true); result = searchService.search("hans klaus single", Arrays.asList("template1", "template2"), null, null, null, false, false, null, null, 0, 10, true);
assertThat(result.getMatchedDocuments().size()).isEqualTo(1); assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
@ -371,10 +368,10 @@ public class SearchTest extends AbstractElasticsearchIntegrationTest {
Text text = objectMapper.readValue(textResource.getInputStream(), Text.class); Text text = objectMapper.readValue(textResource.getInputStream(), Text.class);
String fileName = "luke-skywalker-42.pdf"; String fileName = "luke-skywalker-42.pdf";
String searchString = "szedhsegkekhglghserlkghrsdvkerxyfdbvkrdjgh"; String searchString = "szedhsegkekhglghserlkghrsdvkerxyfdbvkrdjgh";
documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", false, false, WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
// Act // Act
SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, null, 1, 10, true); SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, false, false, null, null, 1, 10, true);
// Assert // Assert
assertThat(result.getMatchedDocuments().size()).isEqualTo(0); assertThat(result.getMatchedDocuments().size()).isEqualTo(0);
@ -391,10 +388,10 @@ public class SearchTest extends AbstractElasticsearchIntegrationTest {
Text text = objectMapper.readValue(textResource.getInputStream(), Text.class); Text text = objectMapper.readValue(textResource.getInputStream(), Text.class);
String fileName = "luke-skywalker-42.pdf"; String fileName = "luke-skywalker-42.pdf";
String searchString = fileName; String searchString = fileName;
documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", false, false, WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
// Act // Act
SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, null, 0, 10, true); SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, false, false, null, null, 0, 10, true);
// Assert // Assert
assertThat(result.getMatchedDocuments().size()).isEqualTo(1); assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
@ -413,10 +410,10 @@ public class SearchTest extends AbstractElasticsearchIntegrationTest {
Text text = objectMapper.readValue(textResource.getInputStream(), Text.class); Text text = objectMapper.readValue(textResource.getInputStream(), Text.class);
String fileName = "luke-blankwalker 42.pdf"; String fileName = "luke-blankwalker 42.pdf";
String searchString = fileName; String searchString = fileName;
documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", false, false, WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
// Act // Act
SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, null, 0, 10, true); SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, false, false, null, null, 0, 10, true);
// Assert // Assert
assertThat(result.getMatchedDocuments().size()).isEqualTo(1); assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
@ -436,10 +433,10 @@ public class SearchTest extends AbstractElasticsearchIntegrationTest {
Text text = objectMapper.readValue(textResource.getInputStream(), Text.class); Text text = objectMapper.readValue(textResource.getInputStream(), Text.class);
String fileName = "luke-skywalker-42.pdf"; String fileName = "luke-skywalker-42.pdf";
String searchString = "luke"; String searchString = "luke";
documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", false, false, WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
// Act // Act
SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, null, 0, 10, true); SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, false, false, null, null, 0, 10, true);
// Assert // Assert
assertThat(result.getMatchedDocuments().size()).isEqualTo(1); assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
@ -458,10 +455,10 @@ public class SearchTest extends AbstractElasticsearchIntegrationTest {
Text text = objectMapper.readValue(textResource.getInputStream(), Text.class); Text text = objectMapper.readValue(textResource.getInputStream(), Text.class);
String fileName = "luke-skywalker-42.pdf"; String fileName = "luke-skywalker-42.pdf";
String searchString = "luke-skywalker-42"; String searchString = "luke-skywalker-42";
documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", false, false, WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
// Act // Act
SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, null, 0, 10, true); SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, false, false, null, null, 0, 10, true);
// Assert // Assert
assertThat(result.getMatchedDocuments().size()).isEqualTo(1); assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
@ -481,10 +478,10 @@ public class SearchTest extends AbstractElasticsearchIntegrationTest {
String fileName = "luke-skywalker-42.pdf"; String fileName = "luke-skywalker-42.pdf";
String matchedString = fileName; String matchedString = fileName;
String searchString = "\"" + matchedString + "\""; String searchString = "\"" + matchedString + "\"";
documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", false, false, WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
// Act // Act
SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, null, 0, 10, true); SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, false, false, null, null, 0, 10, true);
// Assert // Assert
assertThat(result.getMatchedDocuments().size()).isEqualTo(1); assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
@ -504,10 +501,10 @@ public class SearchTest extends AbstractElasticsearchIntegrationTest {
String fileName = "luke-skywalker-42.pdf"; String fileName = "luke-skywalker-42.pdf";
String matchedString = "luke"; String matchedString = "luke";
String searchString = "\"" + matchedString + "\""; String searchString = "\"" + matchedString + "\"";
documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", false, false, WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
// Act // Act
SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, null, 0, 10, true); SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, false, false, null, null, 0, 10, true);
// Assert // Assert
assertThat(result.getMatchedDocuments().size()).isEqualTo(1); assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
@ -527,10 +524,10 @@ public class SearchTest extends AbstractElasticsearchIntegrationTest {
String fileName = "luke-skywalker-42.pdf"; String fileName = "luke-skywalker-42.pdf";
String matchedString = "luke-skywalker-42"; String matchedString = "luke-skywalker-42";
String searchString = "\"luke-skywalker-42\""; String searchString = "\"luke-skywalker-42\"";
documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", false, false, WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
// Act // Act
SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, null, 0, 10, true); SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, false, false, null, null, 0, 10, true);
// Assert // Assert
assertThat(result.getMatchedDocuments().size()).isEqualTo(1); assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
@ -550,10 +547,10 @@ public class SearchTest extends AbstractElasticsearchIntegrationTest {
String fileName = "luke-blankwalker 42.pdf"; String fileName = "luke-blankwalker 42.pdf";
String matchedString = fileName; String matchedString = fileName;
String searchString = "\"" + matchedString + "\""; String searchString = "\"" + matchedString + "\"";
documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", false, false, WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
// Act // Act
SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, null, 0, 10, true); SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, false, false, null, null, 0, 10, true);
// Assert // Assert
assertThat(result.getMatchedDocuments().size()).isEqualTo(1); assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
@ -572,10 +569,10 @@ public class SearchTest extends AbstractElasticsearchIntegrationTest {
Text text = objectMapper.readValue(textResource.getInputStream(), Text.class); Text text = objectMapper.readValue(textResource.getInputStream(), Text.class);
String fileName = "luke-skywalker-42.pdf"; String fileName = "luke-skywalker-42.pdf";
String searchString = "14C]-SDS-46851"; String searchString = "14C]-SDS-46851";
documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", false, false, WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
// Act // Act
SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, null, 0, 10, true); SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, false, false, null, null, 0, 10, true);
// Assert // Assert
assertThat(result.getMatchedDocuments().size()).isEqualTo(1); assertThat(result.getMatchedDocuments().size()).isEqualTo(1);