RED-5403 - Dossier Template export and import

- delete current justifications when the import has none
- update junit tests
This commit is contained in:
devplant 2022-10-17 12:18:02 +03:00
parent 4035abe2f3
commit fa5a8245a1
2 changed files with 60 additions and 4 deletions

View File

@ -178,6 +178,14 @@ public class DossierTemplateImportService {
}
});
// set legal basis
if (CollectionUtils.isNotEmpty(request.getLegalBases())) {
legalBasisMappingPersistenceService.setLegalBasisMapping(dossierTemplateId, request.getLegalBases());
} else { // delete existing
var existingLegalBasis = legalBasisMappingPersistenceService.getLegalBasisMapping(dossierTemplateId).stream().map(LegalBasisEntity::getName).collect(Collectors.toList());
legalBasisMappingPersistenceService.deleteLegalBasis(dossierTemplateId, existingLegalBasis);
}
} else {
// creates new dossier template
if (StringUtils.isEmpty(dossierTemplateMeta.getName())) {
@ -253,11 +261,12 @@ public class DossierTemplateImportService {
reportTemplateService.uploadTemplate(reportRequest);
});
}
// set legal basis
if (CollectionUtils.isNotEmpty(request.getLegalBases())) {
legalBasisMappingPersistenceService.setLegalBasisMapping(dossierTemplateId, request.getLegalBases());
}
}
// set legal basis
if (CollectionUtils.isNotEmpty(request.getLegalBases())) {
legalBasisMappingPersistenceService.setLegalBasisMapping(dossierTemplateId, request.getLegalBases());
}
// file attribute general configuration
if(request.getFileAttributesGeneralConfiguration() != null) {

View File

@ -7,6 +7,7 @@ import com.iqser.red.service.peristence.v1.server.integration.service.DossierTes
import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest;
import com.iqser.red.service.peristence.v1.server.service.export.ExportDownloadMessageReceiver;
import com.iqser.red.service.peristence.v1.server.utils.StorageIdUtils;
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.LegalBasisEntity;
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierTemplateEntity;
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.ReportTemplateEntity;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.*;
@ -34,6 +35,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import java.nio.charset.StandardCharsets;
import java.time.OffsetDateTime;
import java.util.*;
import java.util.stream.Collectors;
import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert;
import static org.assertj.core.api.Assertions.as;
@ -370,6 +372,51 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest {
assertThat(statuses.get(0).getStatus()).isEqualTo(DownloadStatusValue.READY);
}
@SneakyThrows
@Test
public void testExportAndImportDossierTemplateWithJustificationsNotPresent() {
var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate();
var existingLegalBasis = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId());
assertThat(existingLegalBasis.size()).isEqualTo(1);
// delete justifications for export
legalBasisClient.deleteLegalBasis(dossierTemplate.getId(), existingLegalBasis.stream().map(LegalBasis::getName).collect(Collectors.toList()));
existingLegalBasis = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId());
assertThat(existingLegalBasis.isEmpty()).isTrue();
dossierTemplateClient.prepareExportDownload(ExportDownloadRequest.builder()
.userId("1")
.dossierTemplateId(dossierTemplate.getId())
.build());
var statuses = downloadClient.getDownloadStatus("1");
assertThat(statuses).isNotEmpty();
String storageId = StorageIdUtils.getStorageId("1", dossierTemplate.getId());
dossierTemplateClient.createExportDownload("1", storageId);
statuses = downloadClient.getDownloadStatus("1");
assertThat(statuses).isNotEmpty();
assertThat(statuses.get(0).getStatus()).isEqualTo(DownloadStatusValue.READY);
// add new justifications
legalBasisClient.setLegalBasisMapping(dossierTemplate.getId(), List.of(new LegalBasis("nameAgain", "description", "reason")));
existingLegalBasis = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId());
assertThat(existingLegalBasis.size()).isEqualTo(1);
ImportDossierTemplateRequest request1 = ImportDossierTemplateRequest.builder()
.dossierTemplateId(dossierTemplate.getId())
.updateExistingDossierTemplate(true)
.userId("1")
.archive(storageService.getObject(storageId).getInputStream().readAllBytes())
.build();
dossierTemplateClient.importDossierTemplate(request1);
existingLegalBasis = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId());
assertThat(existingLegalBasis.isEmpty()).isTrue();
}
@Test
@SneakyThrows
public void testImportDossierTemplateUpdateExisting() {