RED-6467: Expanded dossier-template import (integration) test to use the client, to test the complete code flow
This commit is contained in:
parent
225bdd5500
commit
9295725adc
@ -1,8 +1,11 @@
|
||||
package com.iqser.red.service.peristence.v1.server.integration.tests;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
@ -13,10 +16,15 @@ import java.util.zip.ZipOutputStream;
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
import org.springframework.mock.web.MockMultipartFile;
|
||||
|
||||
import com.iqser.red.service.peristence.v1.server.integration.client.DossierTemplateClient;
|
||||
import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.DossierTemplateImportService;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.DossierTemplateManagementService;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.utils.multitenancy.TenantContext;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierTemplateModel;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.DossierTemplate;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.importexport.ImportDossierTemplateRequest;
|
||||
|
||||
import lombok.SneakyThrows;
|
||||
@ -25,8 +33,12 @@ import lombok.extern.slf4j.Slf4j;
|
||||
@Slf4j
|
||||
public class DossierTemplateImportTest extends AbstractPersistenceServerServiceTest {
|
||||
|
||||
public static final String DOSSIERTEMPLATES_PATH = "files/dossiertemplates/";
|
||||
@Autowired
|
||||
private DossierTemplateImportService dossierTemplateImportService;
|
||||
private DossierTemplateManagementService dossierTemplateManagementService;
|
||||
|
||||
@Autowired
|
||||
private DossierTemplateClient dossierTemplateClient;
|
||||
|
||||
|
||||
@SneakyThrows
|
||||
@ -35,17 +47,21 @@ public class DossierTemplateImportTest extends AbstractPersistenceServerServiceT
|
||||
public void testDossierTemplateImport() {
|
||||
|
||||
var importDir = new File("/Users/timobejan/work/dossier-templates-v2/dev");
|
||||
assertThat(importDir).isNotNull();
|
||||
assertThat(importDir.exists()).isTrue();
|
||||
|
||||
TenantContext.setTenantId("redaction");
|
||||
for (var file : importDir.listFiles()) {
|
||||
if(file.isDirectory()){
|
||||
if (file.isDirectory()) {
|
||||
var archive = pack(file.getAbsolutePath());
|
||||
log.info("Importing file: " + file.getName() + " " + " with size: " + archive.length);
|
||||
var request = new ImportDossierTemplateRequest();
|
||||
request.setArchive(archive);
|
||||
request.setUpdateExistingDossierTemplate(false);
|
||||
request.setUserId("system");
|
||||
dossierTemplateImportService.importDossierTemplate(request);
|
||||
DossierTemplate dossierTemplate = dossierTemplateManagementService.importDossierTemplate(request);
|
||||
assertThat(dossierTemplate).isNotNull();
|
||||
assertThat(dossierTemplate.getId()).isNotBlank();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -56,18 +72,19 @@ public class DossierTemplateImportTest extends AbstractPersistenceServerServiceT
|
||||
var bos = new ByteArrayOutputStream();
|
||||
var p = Paths.get(sourceDirPath);
|
||||
try (ZipOutputStream zs = new ZipOutputStream(bos)) {
|
||||
Stream<Path> paths = Files.walk(p);
|
||||
{
|
||||
paths.filter(path -> !Files.isDirectory(path)).forEach(path -> {
|
||||
ZipEntry zipEntry = new ZipEntry(p.relativize(path).toString());
|
||||
try {
|
||||
zs.putNextEntry(zipEntry);
|
||||
Files.copy(path, zs);
|
||||
zs.closeEntry();
|
||||
} catch (IOException e) {
|
||||
System.err.println(e);
|
||||
}
|
||||
});
|
||||
try (Stream<Path> paths = Files.walk(p)) {
|
||||
{
|
||||
paths.filter(path -> !Files.isDirectory(path)).forEach(path -> {
|
||||
ZipEntry zipEntry = new ZipEntry(p.relativize(path).toString());
|
||||
try {
|
||||
zs.putNextEntry(zipEntry);
|
||||
Files.copy(path, zs);
|
||||
zs.closeEntry();
|
||||
} catch (IOException e) {
|
||||
log.error("Failed to read a file", e);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -75,6 +92,42 @@ public class DossierTemplateImportTest extends AbstractPersistenceServerServiceT
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
@SneakyThrows
|
||||
@Disabled
|
||||
public void dossierImportClientTest() {
|
||||
|
||||
var multipartFile = loadDossierTemplateFromClasspath("EFSA_sanitisation_GFL_v1.zip");
|
||||
DossierTemplateModel dossierTemplateModel = dossierTemplateClient.importDossierTemplate(multipartFile, null, false);
|
||||
assertThat(dossierTemplateModel).isNotNull();
|
||||
assertThat(dossierTemplateModel.getId()).isNotBlank();
|
||||
|
||||
}
|
||||
|
||||
|
||||
@SneakyThrows
|
||||
private MockMultipartFile loadDossierTemplateFromClasspath(String filename) {
|
||||
|
||||
ClassPathResource classPathResource = new ClassPathResource(DOSSIERTEMPLATES_PATH + filename);
|
||||
assertThat(classPathResource.exists()).isTrue();
|
||||
try (InputStream inputStream = classPathResource.getInputStream()) {
|
||||
return new MockMultipartFile(filename, filename, "", inputStream);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// This can be used to test with local files that are not part of the project.
|
||||
@SuppressWarnings("unused")
|
||||
@SneakyThrows
|
||||
private MockMultipartFile loadDossierTemplateFromFile(String filename) {
|
||||
|
||||
File file = new File(filename);
|
||||
assertThat(file.exists()).isTrue();
|
||||
|
||||
return new MockMultipartFile(filename, filename, "", Files.readAllBytes(file.toPath()));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -678,7 +678,7 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest {
|
||||
@SneakyThrows
|
||||
public void testImportDossierTemplateNewTemplatewithCompressionRatioThresholdSurpassed() {
|
||||
|
||||
String fileZip = "EFSA_sanitisation_GFL_v1_adress_parts.zip";
|
||||
String fileZip = "files/dossiertemplates/EFSA_sanitisation_GFL_v1_adress_parts.zip";
|
||||
try (InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(fileZip)) {
|
||||
if (inputStream == null) {
|
||||
throw new RuntimeException("Resource " + fileZip + " was not found on the classpath or is not readable");
|
||||
|
||||
@ -134,3 +134,9 @@ commons:
|
||||
client-id: redaction
|
||||
client-secret: redaction
|
||||
|
||||
feign:
|
||||
client:
|
||||
config:
|
||||
DossierTemplateClient:
|
||||
connectTimeout: 10000
|
||||
readTimeout: 200000
|
||||
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user