RED-2403 Fixed issue with file collision for multi file report template uploads
This commit is contained in:
parent
1225803c73
commit
3105367aa9
@ -1,7 +1,20 @@
|
||||
package com.iqser.red.service.peristence.v1.server.controller;
|
||||
|
||||
import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import com.iqser.red.service.peristence.v1.server.utils.StorageIdUtils;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.ReportTemplateEntity;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.exception.ConflictException;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.ReportTemplatePersistenceService;
|
||||
@ -11,17 +24,9 @@ import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.Re
|
||||
import com.iqser.red.service.persistence.service.v1.api.resources.ReportTemplateResource;
|
||||
import com.iqser.red.storage.commons.exception.StorageObjectDoesNotExist;
|
||||
import com.iqser.red.storage.commons.service.StorageService;
|
||||
|
||||
import lombok.NonNull;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert;
|
||||
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@ -33,18 +38,17 @@ public class ReportTemplateController implements ReportTemplateResource {
|
||||
|
||||
public ReportTemplate uploadTemplate(@RequestBody ReportTemplateUploadRequest reportTemplateUploadRequest) {
|
||||
|
||||
String fileName = parseFileName(reportTemplateUploadRequest);
|
||||
|
||||
List<ReportTemplateEntity> reportTemplates = reportTemplatePersistenceService.findByDossierTemplateId(reportTemplateUploadRequest.getDossierTemplateId());
|
||||
for (ReportTemplateEntity reportTemplate : reportTemplates) {
|
||||
if (reportTemplate.getFileName().equals(reportTemplateUploadRequest.getFileName())) {
|
||||
throw new ConflictException("Template already exists.");
|
||||
}
|
||||
if (doesFileNameExists(reportTemplates, fileName)) {
|
||||
throw new ConflictException("Template already exists.");
|
||||
}
|
||||
String storageId = StorageIdUtils.getReportStorageId(reportTemplateUploadRequest.getDossierTemplateId(), reportTemplateUploadRequest
|
||||
.getFileName());
|
||||
|
||||
String storageId = StorageIdUtils.getReportStorageId(reportTemplateUploadRequest.getDossierTemplateId(), fileName);
|
||||
storageService.storeObject(storageId, reportTemplateUploadRequest.getTemplate());
|
||||
String templateId = UUID.randomUUID().toString();
|
||||
reportTemplatePersistenceService.insert(reportTemplateUploadRequest.getDossierTemplateId(), templateId, storageId, reportTemplateUploadRequest
|
||||
.getFileName(), reportTemplateUploadRequest.isMultiFileReport(), reportTemplateUploadRequest.isActiveByDefault());
|
||||
reportTemplatePersistenceService.insert(reportTemplateUploadRequest.getDossierTemplateId(), templateId, storageId, fileName, reportTemplateUploadRequest.isMultiFileReport(), reportTemplateUploadRequest.isActiveByDefault());
|
||||
|
||||
return convert(reportTemplatePersistenceService.find(templateId), ReportTemplate.class);
|
||||
|
||||
@ -87,4 +91,29 @@ public class ReportTemplateController implements ReportTemplateResource {
|
||||
|
||||
}
|
||||
|
||||
|
||||
private boolean doesFileNameExists(List<ReportTemplateEntity> reportTemplates, String fileName) {
|
||||
|
||||
for (ReportTemplateEntity reportTemplate : reportTemplates) {
|
||||
if (reportTemplate.getFileName().equals(fileName)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
private String parseFileName(@NonNull ReportTemplateUploadRequest reportTemplateUploadRequest) {
|
||||
|
||||
String fileName = reportTemplateUploadRequest.getFileName();
|
||||
if (reportTemplateUploadRequest.isMultiFileReport()) {
|
||||
String[] splitFileName = StringUtils.split(fileName, ".");
|
||||
if (splitFileName.length != 2) {
|
||||
throw new BadRequestException("FileName is not correct.");
|
||||
}
|
||||
fileName = splitFileName[0] + "(multifile)." + splitFileName[1];
|
||||
}
|
||||
return fileName;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,13 +1,15 @@
|
||||
package com.iqser.red.service.peristence.v1.server.integration.tests;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.assertj.core.api.Assertions.catchThrowable;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import com.iqser.red.service.peristence.v1.server.integration.client.ReportTemplateClient;
|
||||
import com.iqser.red.service.peristence.v1.server.integration.service.DossierTemplateTesterAndProvider;
|
||||
import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest;
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplateUploadRequest;
|
||||
import org.junit.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
public class ReportTemplateTest extends AbstractPersistenceServerServiceTest {
|
||||
|
||||
@ -17,38 +19,407 @@ public class ReportTemplateTest extends AbstractPersistenceServerServiceTest {
|
||||
@Autowired
|
||||
private ReportTemplateClient reportTemplateClient;
|
||||
|
||||
|
||||
/*
|
||||
* Upload report, verify it exist and delete afterwards
|
||||
*/
|
||||
@Test
|
||||
public void testReportTemplate() {
|
||||
|
||||
// Arrange
|
||||
String fileName = "report.xlsx";
|
||||
var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate();
|
||||
|
||||
// Act & Assert
|
||||
var availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId());
|
||||
assertThat(availableTemplates).isEmpty();
|
||||
|
||||
reportTemplateClient.uploadTemplate(ReportTemplateUploadRequest.builder()
|
||||
.activeByDefault(true)
|
||||
.dossierTemplateId(dossierTemplate.getId())
|
||||
.multiFileReport(true)
|
||||
.fileName("test.docx")
|
||||
.template(new byte[]{1, 2, 3, 4}).build());
|
||||
|
||||
.multiFileReport(false)
|
||||
.fileName(fileName)
|
||||
.template(new byte[]{1, 2, 3, 4})
|
||||
.build());
|
||||
|
||||
availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId());
|
||||
assertThat(availableTemplates).isNotEmpty();
|
||||
|
||||
|
||||
var firstTemplate = reportTemplateClient.getReportTemplate(dossierTemplate.getId(), availableTemplates.iterator().next().getTemplateId());
|
||||
var firstTemplate = reportTemplateClient.getReportTemplate(dossierTemplate.getId(), availableTemplates.iterator()
|
||||
.next()
|
||||
.getTemplateId());
|
||||
assertThat(availableTemplates.iterator().next()).isEqualTo(firstTemplate);
|
||||
|
||||
assertThat(firstTemplate.getFileName()).isEqualTo(fileName);
|
||||
|
||||
var download = reportTemplateClient.downloadReportTemplate(firstTemplate.getDossierTemplateId(), firstTemplate.getTemplateId());
|
||||
assertThat(download.getFile().length).isEqualTo(4);
|
||||
|
||||
|
||||
reportTemplateClient.deleteTemplate(firstTemplate.getDossierTemplateId(), firstTemplate.getTemplateId());
|
||||
|
||||
availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId());
|
||||
assertThat(availableTemplates).isEmpty();
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Upload multiFile report, verify it exist with correct fileName and delete afterwards
|
||||
*/
|
||||
@Test
|
||||
public void testMultiFileReportTemplate() {
|
||||
|
||||
// Arrange
|
||||
String fileName = "report.xlsx";
|
||||
var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate();
|
||||
|
||||
// Act & Assert
|
||||
var availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId());
|
||||
assertThat(availableTemplates).isEmpty();
|
||||
|
||||
reportTemplateClient.uploadTemplate(ReportTemplateUploadRequest.builder()
|
||||
.activeByDefault(true)
|
||||
.dossierTemplateId(dossierTemplate.getId())
|
||||
.multiFileReport(true)
|
||||
.fileName(fileName)
|
||||
.template(new byte[]{1, 2, 3, 4})
|
||||
.build());
|
||||
|
||||
availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId());
|
||||
assertThat(availableTemplates).isNotEmpty();
|
||||
|
||||
var firstTemplate = reportTemplateClient.getReportTemplate(dossierTemplate.getId(), availableTemplates.iterator()
|
||||
.next()
|
||||
.getTemplateId());
|
||||
assertThat(availableTemplates.iterator().next()).isEqualTo(firstTemplate);
|
||||
assertThat(firstTemplate.getFileName()).isEqualTo("report(multifile).xlsx");
|
||||
|
||||
var download = reportTemplateClient.downloadReportTemplate(firstTemplate.getDossierTemplateId(), firstTemplate.getTemplateId());
|
||||
assertThat(download.getFile().length).isEqualTo(4);
|
||||
|
||||
reportTemplateClient.deleteTemplate(firstTemplate.getDossierTemplateId(), firstTemplate.getTemplateId());
|
||||
|
||||
availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId());
|
||||
assertThat(availableTemplates).isEmpty();
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Try to upload template two times
|
||||
*/
|
||||
@Test
|
||||
public void testReportTemplateTwoTimes() {
|
||||
|
||||
// Arrange
|
||||
String fileName = "report.xlsx";
|
||||
var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate();
|
||||
|
||||
// Act & Assert
|
||||
var availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId());
|
||||
assertThat(availableTemplates).isEmpty();
|
||||
|
||||
reportTemplateClient.uploadTemplate(ReportTemplateUploadRequest.builder()
|
||||
.activeByDefault(true)
|
||||
.dossierTemplateId(dossierTemplate.getId())
|
||||
.multiFileReport(false)
|
||||
.fileName(fileName)
|
||||
.template(new byte[]{1, 2, 3, 4})
|
||||
.build());
|
||||
|
||||
availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId());
|
||||
assertThat(availableTemplates).isNotEmpty();
|
||||
|
||||
final Throwable thrown = catchThrowable(() -> {
|
||||
reportTemplateClient.uploadTemplate(ReportTemplateUploadRequest.builder()
|
||||
.activeByDefault(true)
|
||||
.dossierTemplateId(dossierTemplate.getId())
|
||||
.multiFileReport(false)
|
||||
.fileName(fileName)
|
||||
.template(new byte[]{1, 2, 3, 4})
|
||||
.build());
|
||||
});
|
||||
|
||||
assertThat(thrown.getMessage()).contains("Template already exists");
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Try to upload multi file template two times
|
||||
*/
|
||||
@Test
|
||||
public void testMultiFileReportTemplateTwoTimes() {
|
||||
|
||||
// Arrange
|
||||
String fileName = "report.xlsx";
|
||||
var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate();
|
||||
|
||||
// Act & Assert
|
||||
var availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId());
|
||||
assertThat(availableTemplates).isEmpty();
|
||||
|
||||
reportTemplateClient.uploadTemplate(ReportTemplateUploadRequest.builder()
|
||||
.activeByDefault(true)
|
||||
.dossierTemplateId(dossierTemplate.getId())
|
||||
.multiFileReport(true)
|
||||
.fileName(fileName)
|
||||
.template(new byte[]{1, 2, 3, 4})
|
||||
.build());
|
||||
|
||||
availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId());
|
||||
assertThat(availableTemplates).isNotEmpty();
|
||||
|
||||
final Throwable thrown = catchThrowable(() -> {
|
||||
reportTemplateClient.uploadTemplate(ReportTemplateUploadRequest.builder()
|
||||
.activeByDefault(true)
|
||||
.dossierTemplateId(dossierTemplate.getId())
|
||||
.multiFileReport(true)
|
||||
.fileName(fileName)
|
||||
.template(new byte[]{1, 2, 3, 4})
|
||||
.build());
|
||||
});
|
||||
|
||||
assertThat(thrown.getMessage()).contains("Template already exists");
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Upload template file and then multi file template with the same name
|
||||
*/
|
||||
@Test
|
||||
public void testReportTemplateAndThenMultiFileReportTemple() {
|
||||
|
||||
// Arrange
|
||||
String fileName = "report.xlsx";
|
||||
var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate();
|
||||
|
||||
// Act & Assert
|
||||
var availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId());
|
||||
assertThat(availableTemplates).isEmpty();
|
||||
|
||||
reportTemplateClient.uploadTemplate(ReportTemplateUploadRequest.builder()
|
||||
.activeByDefault(true)
|
||||
.dossierTemplateId(dossierTemplate.getId())
|
||||
.multiFileReport(false)
|
||||
.fileName(fileName)
|
||||
.template(new byte[]{1, 2, 3, 4})
|
||||
.build());
|
||||
|
||||
availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId());
|
||||
assertThat(availableTemplates).isNotEmpty();
|
||||
|
||||
var firstTemplate = reportTemplateClient.getReportTemplate(dossierTemplate.getId(), availableTemplates.iterator()
|
||||
.next()
|
||||
.getTemplateId());
|
||||
assertThat(availableTemplates.iterator().next()).isEqualTo(firstTemplate);
|
||||
assertThat(firstTemplate.getFileName()).isEqualTo(fileName);
|
||||
|
||||
var download = reportTemplateClient.downloadReportTemplate(firstTemplate.getDossierTemplateId(), firstTemplate.getTemplateId());
|
||||
assertThat(download.getFile().length).isEqualTo(4);
|
||||
|
||||
reportTemplateClient.uploadTemplate(ReportTemplateUploadRequest.builder()
|
||||
.activeByDefault(true)
|
||||
.dossierTemplateId(dossierTemplate.getId())
|
||||
.multiFileReport(true)
|
||||
.fileName(fileName)
|
||||
.template(new byte[]{1, 2, 3, 4})
|
||||
.build());
|
||||
|
||||
availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId());
|
||||
assertThat(availableTemplates).isNotEmpty();
|
||||
assertThat(availableTemplates.size()).isEqualTo(2);
|
||||
|
||||
var secondTemplate = reportTemplateClient.getReportTemplate(dossierTemplate.getId(), availableTemplates.get(1)
|
||||
.getTemplateId());
|
||||
assertThat(availableTemplates.get(1)).isEqualTo(secondTemplate);
|
||||
assertThat(secondTemplate.getFileName()).isEqualTo("report(multifile).xlsx");
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Upload multi file template and then template file with the same name
|
||||
*/
|
||||
@Test
|
||||
public void testMultiFileReportTemplateAndThenReportTemple() {
|
||||
|
||||
// Arrange
|
||||
String fileName = "report.xlsx";
|
||||
var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate();
|
||||
|
||||
// Act & Assert
|
||||
var availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId());
|
||||
assertThat(availableTemplates).isEmpty();
|
||||
|
||||
reportTemplateClient.uploadTemplate(ReportTemplateUploadRequest.builder()
|
||||
.activeByDefault(true)
|
||||
.dossierTemplateId(dossierTemplate.getId())
|
||||
.multiFileReport(true)
|
||||
.fileName(fileName)
|
||||
.template(new byte[]{1, 2, 3, 4})
|
||||
.build());
|
||||
|
||||
availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId());
|
||||
assertThat(availableTemplates).isNotEmpty();
|
||||
|
||||
var firstTemplate = reportTemplateClient.getReportTemplate(dossierTemplate.getId(), availableTemplates.iterator()
|
||||
.next()
|
||||
.getTemplateId());
|
||||
assertThat(availableTemplates.iterator().next()).isEqualTo(firstTemplate);
|
||||
assertThat(firstTemplate.getFileName()).isEqualTo("report(multifile).xlsx");
|
||||
|
||||
var download = reportTemplateClient.downloadReportTemplate(firstTemplate.getDossierTemplateId(), firstTemplate.getTemplateId());
|
||||
assertThat(download.getFile().length).isEqualTo(4);
|
||||
|
||||
reportTemplateClient.uploadTemplate(ReportTemplateUploadRequest.builder()
|
||||
.activeByDefault(true)
|
||||
.dossierTemplateId(dossierTemplate.getId())
|
||||
.multiFileReport(false)
|
||||
.fileName(fileName)
|
||||
.template(new byte[]{1, 2, 3, 4})
|
||||
.build());
|
||||
|
||||
availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId());
|
||||
assertThat(availableTemplates).isNotEmpty();
|
||||
assertThat(availableTemplates.size()).isEqualTo(2);
|
||||
|
||||
var secondTemplate = reportTemplateClient.getReportTemplate(dossierTemplate.getId(), availableTemplates.get(1)
|
||||
.getTemplateId());
|
||||
assertThat(availableTemplates.get(1)).isEqualTo(secondTemplate);
|
||||
assertThat(secondTemplate.getFileName()).isEqualTo(fileName);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Upload MF with ending xlsx
|
||||
*/
|
||||
@Test
|
||||
public void testMultiFileReportTemplateAsExcel() {
|
||||
// Arrange
|
||||
String fileName = "report with really_weird~Name(567) [}=§$783 XYz&";
|
||||
String fileEnding = ".xlsx";
|
||||
var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate();
|
||||
|
||||
// Act & Assert
|
||||
var availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId());
|
||||
assertThat(availableTemplates).isEmpty();
|
||||
|
||||
reportTemplateClient.uploadTemplate(ReportTemplateUploadRequest.builder()
|
||||
.activeByDefault(true)
|
||||
.dossierTemplateId(dossierTemplate.getId())
|
||||
.multiFileReport(true)
|
||||
.fileName(fileName + fileEnding)
|
||||
.template(new byte[]{1, 2, 3, 4})
|
||||
.build());
|
||||
|
||||
availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId());
|
||||
assertThat(availableTemplates).isNotEmpty();
|
||||
|
||||
var firstTemplate = reportTemplateClient.getReportTemplate(dossierTemplate.getId(), availableTemplates.iterator()
|
||||
.next()
|
||||
.getTemplateId());
|
||||
assertThat(availableTemplates.iterator().next()).isEqualTo(firstTemplate);
|
||||
assertThat(firstTemplate.getFileName()).isEqualTo(fileName + "(multifile)" + fileEnding);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Upload MF with ending docx
|
||||
*/
|
||||
@Test
|
||||
public void testMultiFileReportTemplateAsWord() {
|
||||
// Arrange
|
||||
String fileName = "report with really_weird~Name(567) [}=§$783 XYz&";
|
||||
String fileEnding = ".docx";
|
||||
var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate();
|
||||
|
||||
// Act & Assert
|
||||
var availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId());
|
||||
assertThat(availableTemplates).isEmpty();
|
||||
|
||||
reportTemplateClient.uploadTemplate(ReportTemplateUploadRequest.builder()
|
||||
.activeByDefault(true)
|
||||
.dossierTemplateId(dossierTemplate.getId())
|
||||
.multiFileReport(true)
|
||||
.fileName(fileName + fileEnding)
|
||||
.template(new byte[]{1, 2, 3, 4})
|
||||
.build());
|
||||
|
||||
availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId());
|
||||
assertThat(availableTemplates).isNotEmpty();
|
||||
|
||||
var firstTemplate = reportTemplateClient.getReportTemplate(dossierTemplate.getId(), availableTemplates.iterator()
|
||||
.next()
|
||||
.getTemplateId());
|
||||
assertThat(availableTemplates.iterator().next()).isEqualTo(firstTemplate);
|
||||
assertThat(firstTemplate.getFileName()).isEqualTo(fileName + "(multifile)" + fileEnding);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Upload multiFile report with fantasy fileEnding
|
||||
*/
|
||||
@Test
|
||||
public void testMultiFileReportTemplateWithFantasyName() {
|
||||
// Arrange
|
||||
String fileName = "report with really_weird~Name(567) [}=§$783 XYz&";
|
||||
String fileEnding = ".fantasyEnding";
|
||||
var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate();
|
||||
|
||||
// Act & Assert
|
||||
var availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId());
|
||||
assertThat(availableTemplates).isEmpty();
|
||||
|
||||
reportTemplateClient.uploadTemplate(ReportTemplateUploadRequest.builder()
|
||||
.activeByDefault(true)
|
||||
.dossierTemplateId(dossierTemplate.getId())
|
||||
.multiFileReport(true)
|
||||
.fileName(fileName + fileEnding)
|
||||
.template(new byte[]{1, 2, 3, 4})
|
||||
.build());
|
||||
|
||||
availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId());
|
||||
assertThat(availableTemplates).isNotEmpty();
|
||||
|
||||
var firstTemplate = reportTemplateClient.getReportTemplate(dossierTemplate.getId(), availableTemplates.iterator()
|
||||
.next()
|
||||
.getTemplateId());
|
||||
assertThat(availableTemplates.iterator().next()).isEqualTo(firstTemplate);
|
||||
assertThat(firstTemplate.getFileName()).isEqualTo(fileName + "(multifile)" + fileEnding);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Upload multiFile report with corrupt fileName
|
||||
*/
|
||||
@Test
|
||||
public void testMultiFileReportTemplateWithCorruptFileName() {
|
||||
// Arrange
|
||||
String fileName = "report";
|
||||
String fileEnding = "endingWithoutDot";
|
||||
var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate();
|
||||
|
||||
// Act & Assert
|
||||
var availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId());
|
||||
assertThat(availableTemplates).isEmpty();
|
||||
|
||||
final Throwable thrown = catchThrowable(() -> {
|
||||
reportTemplateClient.uploadTemplate(ReportTemplateUploadRequest.builder()
|
||||
.activeByDefault(true)
|
||||
.dossierTemplateId(dossierTemplate.getId())
|
||||
.multiFileReport(true)
|
||||
.fileName(fileName + fileEnding)
|
||||
.template(new byte[]{1, 2, 3, 4})
|
||||
.build());
|
||||
});
|
||||
|
||||
assertThat(thrown.getMessage()).contains("FileName is not correct");
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user