RED-3239 Extended search with dossier status

This commit is contained in:
Philipp Schramm 2022-01-20 15:25:19 +01:00
parent 3e121e9e06
commit ca18b9226e
12 changed files with 199 additions and 78 deletions

View File

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

View File

@ -24,7 +24,7 @@
<dependency>
<groupId>com.iqser.red.service</groupId>
<artifactId>persistence-service-api-v1</artifactId>
<version>0.142.0</version>
<version>1.16.0</version>
</dependency>
<!-- commons -->

View File

@ -0,0 +1,10 @@
package com.iqser.red.service.search.v1.server.client;
import com.iqser.red.service.persistence.service.v1.api.resources.DossierResource;
import com.iqser.red.service.persistence.service.v1.api.resources.StatusResource;
import org.springframework.cloud.openfeign.FeignClient;
@FeignClient(name = "DossierResource", url = "${persistence-service.url}")
public interface DossierClient extends DossierResource {
}

View File

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

View File

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

View File

@ -14,6 +14,7 @@ import lombok.NoArgsConstructor;
public class IndexDocumentUpdate {
private String assignee;
private String dossierStatus;
private String workflowStatus;
private List<IndexFileAttribute> fileAttributes;

View File

@ -4,6 +4,7 @@ import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.iqser.red.service.search.v1.model.IndexMessage;
import com.iqser.red.service.search.v1.model.IndexMessageType;
import com.iqser.red.service.search.v1.server.client.DossierClient;
import com.iqser.red.service.search.v1.server.client.FileStatusClient;
import com.iqser.red.service.search.v1.server.client.FileStatusProcessingUpdateClient;
import com.iqser.red.service.search.v1.server.model.Text;
@ -28,6 +29,7 @@ public class IndexingMessageReceiver {
private final TextStorageService textStorageService;
private final DocumentIndexService documentIndexService;
private final FileStatusClient fileStatusClient;
private final DossierClient dossierClient;
private final FileStatusProcessingUpdateClient fileStatusProcessingUpdateClient;
private final DocumentDeleteService documentDeleteService;
private final DocumentUpdateService documentUpdateService;
@ -40,15 +42,16 @@ public class IndexingMessageReceiver {
var indexRequest = objectMapper.readValue(in, IndexMessage.class);
log.info("Processing indexing request: {}", indexRequest);
var fileStatus = fileStatusClient.getFileStatus(indexRequest.getDossierId(), indexRequest.getFileId());
var dossier = dossierClient.getDossierById(indexRequest.getDossierId(), true, true);
if (IndexMessageType.INSERT.equals(indexRequest.getMessageType())) {
fileStatusProcessingUpdateClient.indexing(indexRequest.getDossierId(), indexRequest.getFileId());
Text text = textStorageService.getText(indexRequest.getDossierId(), indexRequest.getFileId());
documentIndexService.indexDocument(indexRequest.getDossierTemplateId(), indexRequest.getDossierId(), indexRequest.getFileId(), fileStatus.getFilename(), text, fileStatus.getAssignee(), fileStatus.getWorkflowStatus(), fileStatus.getFileAttributes());
documentIndexService.indexDocument(indexRequest.getDossierTemplateId(), indexRequest.getDossierId(), indexRequest.getFileId(), fileStatus.getFilename(), text, fileStatus.getAssignee(), dossier.getStatus(), fileStatus.getWorkflowStatus(), fileStatus.getFileAttributes());
fileStatusProcessingUpdateClient.indexingSuccessful(indexRequest.getDossierId(), indexRequest.getFileId());
log.info("Successfully indexed {}", indexRequest);
} else if (IndexMessageType.UPDATE.equals(indexRequest.getMessageType())) {
documentUpdateService.updateDocument(indexRequest.getFileId(), fileStatus.getAssignee(), fileStatus.getWorkflowStatus().name(), fileStatus.getFileAttributes());
documentUpdateService.updateDocument(indexRequest.getFileId(), fileStatus.getAssignee(), dossier.getStatus(), fileStatus.getWorkflowStatus().name(), fileStatus.getFileAttributes());
log.info("Successfully updated {}", indexRequest);
}
}

View File

@ -2,6 +2,8 @@ package com.iqser.red.service.search.v1.server.service;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
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.WorkflowStatus;
import com.iqser.red.service.search.v1.server.client.ElasticsearchClient;
import com.iqser.red.service.search.v1.server.exception.IndexException;
@ -33,11 +35,11 @@ public class DocumentIndexService {
private final ObjectMapper objectMapper;
public void indexDocument(String dossierTemplateId, String dossierId, String fileId, String filename, Text text, String assignee, WorkflowStatus workflowStatus, Map<String, String> fileAttributes) {
public void indexDocument(String dossierTemplateId, String dossierId, String fileId, String filename, Text text, String assignee, DossierStatus dossierStatus, WorkflowStatus workflowStatus, Map<String, String> fileAttributes) {
IndexRequest indexRequest = new IndexRequest(INDEX_NAME).id(fileId);
indexRequest.setRefreshPolicy(settings.getRefreshPolicy());
indexRequest.source(toJson(convert(dossierTemplateId, dossierId, fileId, filename, text, assignee, workflowStatus, fileAttributes)), XContentType.JSON);
indexRequest.source(toJson(convert(dossierTemplateId, dossierId, fileId, filename, text, assignee, dossierStatus, workflowStatus, fileAttributes)), XContentType.JSON);
try {
client.index(indexRequest, RequestOptions.DEFAULT);
@ -57,7 +59,7 @@ public class DocumentIndexService {
}
private IndexDocument convert(String dossierTemplateId, String dossierId, String fileId, String filename, Text text, String assignee, WorkflowStatus workflowStatus, Map<String, String> fileAttributes) {
private IndexDocument convert(String dossierTemplateId, String dossierId, String fileId, String filename, Text text, String assignee, DossierStatus dossierStatus, WorkflowStatus workflowStatus, Map<String, String> fileAttributes) {
return IndexDocument.builder()
.dossierTemplateId(dossierTemplateId)
@ -68,6 +70,7 @@ public class DocumentIndexService {
.date(OffsetDateTime.now())
.fileAttributes(convertFileAttributes(fileAttributes))
.assignee(assignee)
.dossierStatus(dossierStatus.name())
.workflowStatus(workflowStatus.name())
.build();
}

View File

@ -1,6 +1,7 @@
package com.iqser.red.service.search.v1.server.service;
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.model.IndexDocumentUpdate;
import com.iqser.red.service.search.v1.server.model.IndexFileAttribute;
@ -26,9 +27,14 @@ public class DocumentUpdateService {
private final ElasticsearchClient client;
@SneakyThrows
public void updateDocument(String fileId, String assignee, String workflowStatus, Map<String, String> fileAttributes) {
public void updateDocument(String fileId, String assignee, DossierStatus dossierStatus, String workflowStatus, Map<String, String> fileAttributes) {
var indexUpdateRequest = IndexDocumentUpdate.builder().assignee(assignee).workflowStatus(workflowStatus).fileAttributes(convertFileAttributes(fileAttributes)).build();
var indexUpdateRequest = IndexDocumentUpdate.builder()
.assignee(assignee)
.dossierStatus(dossierStatus.name())
.workflowStatus(workflowStatus)
.fileAttributes(convertFileAttributes(fileAttributes))
.build();
UpdateRequest request = new UpdateRequest(INDEX_NAME, fileId);
request.doc(objectMapper.writeValueAsString(indexUpdateRequest), XContentType.JSON);

View File

@ -1,5 +1,6 @@
package com.iqser.red.service.search.v1.server.service;
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.MatchedSection;
import com.iqser.red.service.search.v1.model.SearchResult;
@ -45,6 +46,7 @@ public class SearchService {
List<String> dossierIds,
String fileId,
String assignee,
List<String> dossierStatus,
String workflowStatus,
Map<String, String> fileAttributes,
int page,
@ -54,11 +56,11 @@ public class SearchService {
Query query = QueryStringConverter.convert(queryString);
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder().query(convertQuery(query, dossierTemplateIds, dossierIds, fileId, assignee, workflowStatus, fileAttributes, returnSections))
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder().query(convertQuery(query, dossierTemplateIds, dossierIds, fileId, assignee, getDossierStatusOrDefault(dossierStatus), workflowStatus, fileAttributes, returnSections))
.from(getPageOrDefault(page) * getPageSizeOrDefault(pageSize))
.size(getPageSizeOrDefault(pageSize))
.fetchSource(new String[]{"dossierId", "fileId"}, new String[]{"sections"})
.highlighter(new HighlightBuilder().field("sections.text").field("filename").field("fileAttributes.value").highlighterType("fvh"))//
.highlighter(new HighlightBuilder().field("sections.text").field("filename").field("fileAttributes.value").highlighterType("fvh"))
.trackScores(true);
SearchRequest request = new SearchRequest(INDEX_NAME).source(searchSourceBuilder);
@ -79,7 +81,17 @@ public class SearchService {
}
private QueryBuilder convertQuery(Query query, List<String> dossierTemplateIds, List<String> dossierIds, String fileId, String assignee, String workflowStatus, Map<String, String> fileAttributes, boolean returnSections) {
private QueryBuilder convertQuery(
Query query,
List<String> dossierTemplateIds,
List<String> dossierIds,
String fileId,
String assignee,
List<String> dossierStatus,
String workflowStatus,
Map<String, String> fileAttributes,
boolean returnSections
) {
BoolQueryBuilder entireQuery = QueryBuilders.boolQuery();
BoolQueryBuilder sectionsQueries = QueryBuilders.boolQuery();
@ -151,6 +163,19 @@ public class SearchService {
filterQuery.must(QueryBuilders.matchQuery("assignee", assignee));
}
if (dossierStatus != null && !dossierStatus.isEmpty()) {
var dossierStatusQueryBuilder = QueryBuilders.boolQuery();
for (String status : dossierStatus) {
if (StringUtils.isNotEmpty(status)) {
dossierStatusQueryBuilder = dossierStatusQueryBuilder.should(QueryBuilders.matchQuery("dossierStatus", status));
}
}
filterQuery.must(dossierStatusQueryBuilder);
}
if (StringUtils.isNotEmpty(workflowStatus)) {
filterQuery.must(QueryBuilders.matchQuery("workflowStatus", workflowStatus));
}
@ -251,4 +276,13 @@ public class SearchService {
return page;
}
private List<String> getDossierStatusOrDefault(List<String> dossierStatus) {
if (dossierStatus == null || dossierStatus.isEmpty()) {
return List.of(DossierStatus.ACTIVE.name());
}
return dossierStatus;
}
}

View File

@ -22,6 +22,9 @@
"workflowStatus": {
"type": "keyword"
},
"dossierStatus": {
"type": "keyword"
},
"fileAttributes" : {
"type": "nested",
"include_in_parent": true,

View File

@ -1,14 +1,15 @@
package com.iqser.red.service.search.v1.server.service;
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.search.v1.model.MatchedDocument;
import com.iqser.red.service.search.v1.model.SearchResult;
import com.iqser.red.service.search.v1.server.client.DossierClient;
import com.iqser.red.service.search.v1.server.client.FileStatusClient;
import com.iqser.red.service.search.v1.server.client.FileStatusProcessingUpdateClient;
import com.iqser.red.service.search.v1.server.model.Text;
import lombok.SneakyThrows;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
@ -20,13 +21,14 @@ import org.testcontainers.shaded.org.apache.commons.lang.StringUtils;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat;
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT, properties = {AbstractElasticsearchIntegrationTest.WAIT_FOR_WRITE_REQUESTS})
public class IndexCreatorTest extends AbstractElasticsearchIntegrationTest {
public class SearchTest extends AbstractElasticsearchIntegrationTest {
@Autowired
private ObjectMapper objectMapper;
@ -49,6 +51,9 @@ public class IndexCreatorTest extends AbstractElasticsearchIntegrationTest {
@MockBean
private FileStatusProcessingUpdateClient fileStatusProcessingUpdateClient;
@MockBean
private DossierClient dossierClient;
private final long UPDATE_TIMER = 1500;
@ -59,11 +64,11 @@ public class IndexCreatorTest extends AbstractElasticsearchIntegrationTest {
ClassPathResource textResource = new ClassPathResource("files/Text2.json");
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", WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
documentIndexService.indexDocument("template2", "dossierId2", "fileId2", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-2.pdf", text, "UserId2", WorkflowStatus.NEW, Map.of("F2Key", "F2Value"));
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("template2", "dossierId2", "fileId2", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-2.pdf", text, "UserId2", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F2Key", "F2Value"));
// Act & Assert 1
SearchResult result = searchService.search("F1Value", null, null, null, null, null, null, 0, 10, false);
SearchResult result = searchService.search("F1Value", null, null, null, null, null, null, null, 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
}
@ -79,30 +84,30 @@ public class IndexCreatorTest extends AbstractElasticsearchIntegrationTest {
ClassPathResource textResource = new ClassPathResource("files/Text2.json");
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", WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
documentIndexService.indexDocument("template2", "dossierId2", "fileId2", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-2.pdf", text, "UserId2", WorkflowStatus.NEW, Map.of("F2Key", "F2Value"));
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("template2", "dossierId2", "fileId2", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-2.pdf", text, "UserId2", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F2Key", "F2Value"));
// Act & Assert 1
SearchResult result = searchService.search("S-Metolachlor", null, null, null, null, WorkflowStatus.APPROVED.name(), null, 0, 10, false);
SearchResult result = searchService.search("S-Metolachlor", null, null, null, null, List.of(DossierStatus.ACTIVE.name()), WorkflowStatus.APPROVED.name(), null, 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(0);
// Act & Assert 2
result = searchService.search("S-Metolachlor", null, null, null, null, WorkflowStatus.NEW.name(), null, -1, 0, false);
result = searchService.search("S-Metolachlor", null, null, null, null, List.of(DossierStatus.ACTIVE.name()), WorkflowStatus.NEW.name(), null, -1, 0, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(2);
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1");
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2");
// Act & Assert 3
documentUpdateService.updateDocument("fileId1", "UserId2", WorkflowStatus.APPROVED.name(), Map.of("F2Key", "F2Value"));
documentUpdateService.updateDocument("fileId1", "UserId2", DossierStatus.ACTIVE, WorkflowStatus.APPROVED.name(), Map.of("F2Key", "F2Value"));
Thread.sleep(UPDATE_TIMER);
result = searchService.search("S-Metolachlor", null, null, null, "UserId2", WorkflowStatus.NEW.name(), Map.of("F2Key", "F2Value"), 0, 10, false);
result = searchService.search("S-Metolachlor", null, null, null, "UserId2", List.of(DossierStatus.ACTIVE.name()), WorkflowStatus.NEW.name(), Map.of("F2Key", "F2Value"), 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2");
// Act & Assert 4
documentUpdateService.updateDocument("fileId2", "UserId2", WorkflowStatus.APPROVED.name(), Map.of("F2Key", "F2Value"));
documentUpdateService.updateDocument("fileId2", "UserId2", DossierStatus.ACTIVE, WorkflowStatus.APPROVED.name(), Map.of("F2Key", "F2Value"));
Thread.sleep(UPDATE_TIMER);
result = searchService.search("S-Metolachlor", null, null, null, "UserId2", WorkflowStatus.APPROVED.name(), Map.of("F2Key", "F2Value"), 0, 10, false);
result = searchService.search("S-Metolachlor", null, null, null, "UserId2", List.of(DossierStatus.ACTIVE.name()), WorkflowStatus.APPROVED.name(), Map.of("F2Key", "F2Value"), 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(2);
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1");
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2");
@ -118,18 +123,18 @@ public class IndexCreatorTest extends AbstractElasticsearchIntegrationTest {
ClassPathResource textResource = new ClassPathResource("files/Text2.json");
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", WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
documentIndexService.indexDocument("template2", "dossierId2", "fileId2", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-2.pdf", text, "UserId2", WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
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("template2", "dossierId2", "fileId2", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-2.pdf", text, "UserId2", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
// Act & Assert 1
SearchResult result = searchService.search("S-Metolachlor", null, null, null, "UserId2", null, null, 0, 10, false);
SearchResult result = searchService.search("S-Metolachlor", null, null, null, "UserId2", null, null, null, 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2");
// Act & Assert 2
documentUpdateService.updateDocument("fileId1", "UserId2", WorkflowStatus.APPROVED.name(), Map.of("U2Key", "U2Value"));
documentUpdateService.updateDocument("fileId1", "UserId2", DossierStatus.ACTIVE, WorkflowStatus.APPROVED.name(), Map.of("U2Key", "U2Value"));
Thread.sleep(UPDATE_TIMER);
result = searchService.search("S-Metolachlor", null, null, null, "UserId2", null, null, 0, 10, false);
result = searchService.search("S-Metolachlor", null, null, null, "UserId2", null, null, null, 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(2);
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1");
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2");
@ -146,41 +151,94 @@ public class IndexCreatorTest extends AbstractElasticsearchIntegrationTest {
ClassPathResource textResource = new ClassPathResource("files/Text2.json");
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", WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
documentIndexService.indexDocument("template2", "dossierId2", "fileId2", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-2.pdf", text, "UserId2", WorkflowStatus.NEW, Map.of("F2Key", "F2Value"));
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("template2", "dossierId2", "fileId2", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-2.pdf", text, "UserId2", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F2Key", "F2Value"));
// Act & Assert 1
SearchResult result = searchService.search("S-Metolachlor", null, null, null, null, WorkflowStatus.APPROVED.name(), null, 0, 10, false);
SearchResult result = searchService.search("S-Metolachlor", null, null, null, null, List.of(DossierStatus.ACTIVE.name()), WorkflowStatus.APPROVED.name(), null, 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(0);
// Act & Assert 2
result = searchService.search("S-Metolachlor", null, null, null, null, WorkflowStatus.NEW.name(), null, 0, 10, false);
result = searchService.search("S-Metolachlor", null, null, null, null, List.of(DossierStatus.ACTIVE.name()), WorkflowStatus.NEW.name(), null, 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(2);
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1");
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2");
// Act & Assert 3
documentUpdateService.updateDocument("fileId1", "UserId2", WorkflowStatus.APPROVED.name(), Map.of("U2Key", "U2Value"));
documentUpdateService.updateDocument("fileId1", "UserId2", DossierStatus.ACTIVE, WorkflowStatus.APPROVED.name(), Map.of("U2Key", "U2Value"));
Thread.sleep(UPDATE_TIMER);
result = searchService.search("S-Metolachlor", null, null, null, null, WorkflowStatus.APPROVED.name(), null, 0, 10, false);
result = searchService.search("S-Metolachlor", null, null, null, null, List.of(DossierStatus.ACTIVE.name()), WorkflowStatus.APPROVED.name(), null, 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1");
// Act & Assert 4
result = searchService.search("S-Metolachlor", null, null, null, null, WorkflowStatus.NEW.name(), null, 0, 10, false);
result = searchService.search("S-Metolachlor", null, null, null, null, List.of(DossierStatus.ACTIVE.name()), WorkflowStatus.NEW.name(), null, 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2");
// Act & Assert 5
documentUpdateService.updateDocument("fileId2", "UserId2", WorkflowStatus.APPROVED.name(), Map.of("U2Key", "U2Value"));
documentUpdateService.updateDocument("fileId2", "UserId2", DossierStatus.ACTIVE, WorkflowStatus.APPROVED.name(), Map.of("U2Key", "U2Value"));
Thread.sleep(UPDATE_TIMER);
result = searchService.search("S-Metolachlor", null, null, null, null, WorkflowStatus.APPROVED.name(), null, 0, 10, false);
result = searchService.search("S-Metolachlor", null, null, null, null, List.of(DossierStatus.ACTIVE.name()), WorkflowStatus.APPROVED.name(), null, 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(2);
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1");
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2");
}
/*
* Index two documents, update one and filter by dossierStatus
*/
@Test
@SneakyThrows
public void testFilterByDossierStatus() {
// Arrange
ClassPathResource textResource = new ClassPathResource("files/Text2.json");
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("template2", "dossierId2", "fileId2", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-2.pdf", text, "UserId2", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F2Key", "F2Value"));
// Act & Assert 1
SearchResult result = searchService.search("S-Metolachlor", null, null, null, null, List.of(DossierStatus.DELETED.name()), null, null, 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(0);
// Act & Assert 2
result = searchService.search("S-Metolachlor", null, null, null, null, List.of(DossierStatus.ACTIVE.name()), null, null, 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(2);
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1");
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2");
// 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);
assertThat(result.getMatchedDocuments().size()).isEqualTo(2);
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1");
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2");
// Act & Assert 3
documentUpdateService.updateDocument("fileId1", "UserId2", DossierStatus.ARCHIVED, WorkflowStatus.APPROVED.name(), Map.of("U2Key", "U2Value"));
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);
assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2");
// Act & Assert 4
result = searchService.search("S-Metolachlor", null, null, null, null, List.of(DossierStatus.ARCHIVED.name()), null, null, 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1");
// Act & Assert 5
documentUpdateService.updateDocument("fileId2", "UserId2", DossierStatus.DELETED, WorkflowStatus.APPROVED.name(), Map.of("U2Key", "U2Value"));
Thread.sleep(UPDATE_TIMER);
result = searchService.search("S-Metolachlor", null, null, null, null, List.of(DossierStatus.ACTIVE.name()), null, null, 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(0);
// 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);
assertThat(result.getMatchedDocuments().size()).isEqualTo(2);
}
/*
* Index two documents, update one and filter by file attributes
*/
@ -191,53 +249,53 @@ public class IndexCreatorTest extends AbstractElasticsearchIntegrationTest {
ClassPathResource textResource = new ClassPathResource("files/Text2.json");
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", WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
documentIndexService.indexDocument("template2", "dossierId2", "fileId2", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-2.pdf", text, "UserId2", WorkflowStatus.NEW, Map.of("F2Key", "F2Value"));
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("template2", "dossierId2", "fileId2", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-2.pdf", text, "UserId2", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F2Key", "F2Value"));
// Act & Assert 1
SearchResult result = searchService.search("S-Metolachlor", null, null, null, null, null, Map.of("F1Key", "F1Value"), 0, 10, false);
SearchResult result = searchService.search("S-Metolachlor", null, null, null, null, null, null, Map.of("F1Key", "F1Value"), 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1");
// Act & Assert 2
result = searchService.search("S-Metolachlor", null, null, null, null, null, Map.of("F2Key", "F2Value"), 0, 10, false);
result = searchService.search("S-Metolachlor", null, null, null, null, null, null, Map.of("F2Key", "F2Value"), 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2");
// Act & Assert 3
result = searchService.search("S-Metolachlor", null, null, null, null, null, Map.of("F2Key", "does-not-exist"), 0, 10, false);
result = searchService.search("S-Metolachlor", null, null, null, null, null, null, Map.of("F2Key", "does-not-exist"), 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(0);
// Act & Assert 4
result = searchService.search("S-Metolachlor", null, null, null, null, null, Map.of("Key-does-not-exist", "F1Value"), 0, 10, false);
result = searchService.search("S-Metolachlor", null, null, null, null, null, null, Map.of("Key-does-not-exist", "F1Value"), 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(0);
// Act & Assert 5
result = searchService.search("S-Metolachlor", null, null, null, null, null, Map.of("F1Key", "F1Value", "F2Key", "F2Value"), 0, 10, false);
result = searchService.search("S-Metolachlor", null, null, null, null, null, null, Map.of("F1Key", "F1Value", "F2Key", "F2Value"), 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(0);
// Act & Assert 6
documentUpdateService.updateDocument("fileId1", "UserId", WorkflowStatus.NEW.name(), Map.of("F1Key", "F1ValueNEW"));
documentUpdateService.updateDocument("fileId1", "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW.name(), Map.of("F1Key", "F1ValueNEW"));
Thread.sleep(UPDATE_TIMER);
result = searchService.search("S-Metolachlor", null, null, null, null, null, Map.of("F1Key", "F1Value"), 0, 10, false);
result = searchService.search("S-Metolachlor", null, null, null, null, null, null, Map.of("F1Key", "F1Value"), 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(0);
// Act & Assert 7
result = searchService.search("S-Metolachlor", null, null, null, null, null, Map.of("F1Key", "F1ValueNEW"), 0, 10, false);
result = searchService.search("S-Metolachlor", null, null, null, null, null, null, Map.of("F1Key", "F1ValueNEW"), 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1");
// Act & Assert 8
documentUpdateService.updateDocument("fileId1", "UserId", WorkflowStatus.NEW.name(), Map.of("F1Key", "F1Value", "F2Key", "F2Value"));
documentUpdateService.updateDocument("fileId1", "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW.name(), Map.of("F1Key", "F1Value", "F2Key", "F2Value"));
Thread.sleep(UPDATE_TIMER);
result = searchService.search("S-Metolachlor", null, null, null, null, null, Map.of("F1Key", "F1Value", "F2Key", "F2Value"), 0, 10, false);
result = searchService.search("S-Metolachlor", null, null, null, null, null, null, Map.of("F1Key", "F1Value", "F2Key", "F2Value"), 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1");
// Act & Assert 9
documentUpdateService.updateDocument("fileId1", "UserId", WorkflowStatus.NEW.name(), null);
documentUpdateService.updateDocument("fileId1", "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW.name(), null);
Thread.sleep(UPDATE_TIMER);
result = searchService.search("S-Metolachlor", null, null, null, null, null, Map.of("F1Key", "F1Value"), 0, 10, false);
result = searchService.search("S-Metolachlor", null, null, null, null, null, null, Map.of("F1Key", "F1Value"), 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(0);
}
@ -251,11 +309,11 @@ public class IndexCreatorTest extends AbstractElasticsearchIntegrationTest {
ClassPathResource textResource2 = new ClassPathResource("files/Text2.json");
Text text2 = objectMapper.readValue(textResource2.getInputStream(), Text.class);
documentIndexService.indexDocument("template1", "dossierId1", "fileId1", "Single Study - Oral (Gavage) Mouse.pdf", text, "UserId", WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
documentIndexService.indexDocument("template2", "dossierId2", "fileId2", "S-Metolachlor_RAR_01_Volume_1_2018-09-06.pdf", text2, "UserId", WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
documentIndexService.indexDocument("template1", "dossierId1", "fileId1", "Single Study - Oral (Gavage) Mouse.pdf", text, "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", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
// Act & Assert 1
SearchResult result = searchService.search("S-Metolachlor", null, Arrays.asList("dossierId1", "dossierId2"), null, null, null, null, 0, 10, false);
SearchResult result = searchService.search("S-Metolachlor", null, Arrays.asList("dossierId1", "dossierId2"), null, null, null, null, null, 0, 10, false);
assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
@ -263,17 +321,17 @@ public class IndexCreatorTest extends AbstractElasticsearchIntegrationTest {
documentDeleteService.deleteDocument("fileId1");
// Act & Assert 2
result = searchService.search("hans klaus single", null, Arrays.asList("dossierId1", "dossierId2"), null, null, null, null, 0, 10, true);
result = searchService.search("hans klaus single", null, Arrays.asList("dossierId1", "dossierId2"), null, null, null, null, null, 0, 10, true);
assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
// Act & Assert 3
result = searchService.search("hans klaus single", null, Arrays.asList("dossierId3", "dossierId4"), null, null, null, null, 0, 10, true);
result = searchService.search("hans klaus single", null, Arrays.asList("dossierId3", "dossierId4"), null, null, null, null, null, 0, 10, true);
assertThat(result.getMatchedDocuments().size()).isEqualTo(0);
// Act & Assert 4
result = searchService.search("hans klaus single", Arrays.asList("template1", "template2"), null, null, null, null, null, 0, 10, true);
result = searchService.search("hans klaus single", Arrays.asList("template1", "template2"), null, null, null, null, null, null, 0, 10, true);
assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
@ -290,10 +348,10 @@ public class IndexCreatorTest extends AbstractElasticsearchIntegrationTest {
Text text = objectMapper.readValue(textResource.getInputStream(), Text.class);
String fileName = "luke-skywalker-42.pdf";
String searchString = "szedhsegkekhglghserlkghrsdvkerxyfdbvkrdjgh";
documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
// Act
SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, 1, 10, true);
SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, null, 1, 10, true);
// Assert
assertThat(result.getMatchedDocuments().size()).isEqualTo(0);
@ -310,10 +368,10 @@ public class IndexCreatorTest extends AbstractElasticsearchIntegrationTest {
Text text = objectMapper.readValue(textResource.getInputStream(), Text.class);
String fileName = "luke-skywalker-42.pdf";
String searchString = fileName;
documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
// Act
SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, 0, 10, true);
SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, null, 0, 10, true);
// Assert
assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
@ -332,10 +390,10 @@ public class IndexCreatorTest extends AbstractElasticsearchIntegrationTest {
Text text = objectMapper.readValue(textResource.getInputStream(), Text.class);
String fileName = "luke-blankwalker 42.pdf";
String searchString = fileName;
documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
// Act
SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, 0, 10, true);
SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, null, 0, 10, true);
// Assert
assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
@ -355,10 +413,10 @@ public class IndexCreatorTest extends AbstractElasticsearchIntegrationTest {
Text text = objectMapper.readValue(textResource.getInputStream(), Text.class);
String fileName = "luke-skywalker-42.pdf";
String searchString = "luke";
documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
// Act
SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, 0, 10, true);
SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, null, 0, 10, true);
// Assert
assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
@ -377,10 +435,10 @@ public class IndexCreatorTest extends AbstractElasticsearchIntegrationTest {
Text text = objectMapper.readValue(textResource.getInputStream(), Text.class);
String fileName = "luke-skywalker-42.pdf";
String searchString = "luke-skywalker-42";
documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
// Act
SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, 0, 10, true);
SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, null, 0, 10, true);
// Assert
assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
@ -400,10 +458,10 @@ public class IndexCreatorTest extends AbstractElasticsearchIntegrationTest {
String fileName = "luke-skywalker-42.pdf";
String matchedString = fileName;
String searchString = "\"" + matchedString + "\"";
documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
// Act
SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, 0, 10, true);
SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, null, 0, 10, true);
// Assert
assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
@ -423,10 +481,10 @@ public class IndexCreatorTest extends AbstractElasticsearchIntegrationTest {
String fileName = "luke-skywalker-42.pdf";
String matchedString = "luke";
String searchString = "\"" + matchedString + "\"";
documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
// Act
SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, 0, 10, true);
SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, null, 0, 10, true);
// Assert
assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
@ -446,10 +504,10 @@ public class IndexCreatorTest extends AbstractElasticsearchIntegrationTest {
String fileName = "luke-skywalker-42.pdf";
String matchedString = "luke-skywalker-42";
String searchString = "\"luke-skywalker-42\"";
documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
// Act
SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, 0, 10, true);
SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, null, 0, 10, true);
// Assert
assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
@ -469,10 +527,10 @@ public class IndexCreatorTest extends AbstractElasticsearchIntegrationTest {
String fileName = "luke-blankwalker 42.pdf";
String matchedString = fileName;
String searchString = "\"" + matchedString + "\"";
documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
// Act
SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, 0, 10, true);
SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, null, 0, 10, true);
// Assert
assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
@ -491,10 +549,10 @@ public class IndexCreatorTest extends AbstractElasticsearchIntegrationTest {
Text text = objectMapper.readValue(textResource.getInputStream(), Text.class);
String fileName = "luke-skywalker-42.pdf";
String searchString = "14C]-SDS-46851";
documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value"));
// Act
SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, 0, 10, true);
SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, null, 0, 10, true);
// Assert
assertThat(result.getMatchedDocuments().size()).isEqualTo(1);