|
|
|
|
@ -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);
|