RED-3246: As an admin I want to clone a dossier template

This commit is contained in:
aoezyetimoglu 2022-03-17 14:58:24 +01:00
parent 816a28bc11
commit ba37f0eed1
2 changed files with 298 additions and 27 deletions

View File

@ -1,7 +1,11 @@
package com.iqser.red.service.persistence.management.v1.processor.service.persistence;
import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert;
import java.io.IOException;
import java.time.OffsetDateTime;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.UUID;
@ -11,13 +15,25 @@ import javax.transaction.Transactional;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.ColorsEntity;
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.FileAttributesGeneralConfigurationEntity;
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.TypeEntity;
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.WatermarkEntity;
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierAttributeConfigEntity;
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierTemplateEntity;
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileAttributeConfigEntity;
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.ColorsService;
import com.iqser.red.service.persistence.management.v1.processor.service.WatermarkService;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierTemplateRepository;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.CreateOrUpdateDossierTemplateRequest;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DossierTemplateStatus;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.legalbasis.LegalBasis;
import com.iqser.red.service.persistence.service.v1.api.resources.ReportTemplateResource;
import com.iqser.red.storage.commons.service.StorageService;
import lombok.RequiredArgsConstructor;
@ -30,10 +46,18 @@ public class DossierTemplatePersistenceService {
private final DossierTemplateRepository dossierTemplateRepository;
private final LegalBasisMappingPersistenceService legalBasisMappingPersistenceService;
private final RulesPersistenceService rulesPersistenceService;
private final DossierAttributeConfigPersistenceService dossierAttributeConfigPersistenceService;
private final DictionaryPersistenceService dictionaryPersistenceService;
private final FileAttributeConfigPersistenceService fileAttributeConfigPersistenceService;
private final ReportTemplatePersistenceService reportTemplatePersistenceService;
private final WatermarkService watermarkService;
private final ColorsService colorsService;
private final StorageService storageService;
@Transactional
public DossierTemplateEntity createOrUpdateDossierTemplate(CreateOrUpdateDossierTemplateRequest createOrUpdateDossierRequest) {
if (createOrUpdateDossierRequest.getDossierTemplateId() != null) {
Optional<DossierTemplateEntity> dossierTemplate = dossierTemplateRepository.findById(createOrUpdateDossierRequest.getDossierTemplateId());
if (dossierTemplate.isPresent()) {
@ -70,6 +94,7 @@ public class DossierTemplatePersistenceService {
private DossierTemplateStatus computeDossierTemplateStatus(DossierTemplateEntity dossierTemplate) {
var legalBasis = legalBasisMappingPersistenceService.getLegalBasisMapping(dossierTemplate.getId());
if (legalBasis == null || legalBasis.isEmpty()) {
return DossierTemplateStatus.INCOMPLETE;
@ -91,6 +116,7 @@ public class DossierTemplatePersistenceService {
public void validateDossierTemplateNameIsUnique(String templateName) {
getAllDossierTemplates().forEach(existing -> {
if (existing.getName().equals(templateName)) {
throw new ConflictException("DossierTemplate name must be unique");
@ -98,6 +124,7 @@ public class DossierTemplatePersistenceService {
});
}
public List<DossierTemplateEntity> getAllDossierTemplates() {
var allDossierTemplates = dossierTemplateRepository.findAllWhereDeletedIsFalse();
@ -106,15 +133,20 @@ public class DossierTemplatePersistenceService {
return allDossierTemplates;
}
public DossierTemplateEntity getDossierTemplate(String dossierTemplateId) {
var dossierTemplate = dossierTemplateRepository.findByIdAndNotDeleted(dossierTemplateId).orElseThrow(() -> new NotFoundException(String.format(DOSSIER_TEMPLATE_NOT_FOUND_MESSAGE, dossierTemplateId)));
var dossierTemplate = dossierTemplateRepository.findByIdAndNotDeleted(dossierTemplateId)
.orElseThrow(() -> new NotFoundException(String.format(DOSSIER_TEMPLATE_NOT_FOUND_MESSAGE, dossierTemplateId)));
dossierTemplate.setDossierTemplateStatus(computeDossierTemplateStatus(dossierTemplate));
return dossierTemplate;
}
@Transactional
public void deleteDossierTemplate(String dossierTemplateId, String deletingUserId) {
dossierTemplateRepository.findById(dossierTemplateId).ifPresentOrElse((dossierTemplate) -> {
var hasNonDeletedDossiers = dossierTemplate.getDossiers().stream().anyMatch(template -> template.getHardDeletedTime() == null);
@ -139,18 +171,117 @@ public class DossierTemplatePersistenceService {
DossierTemplateEntity clonedDossierTemplate = new DossierTemplateEntity();
dossierTemplateRepository.findById(dossierTemplateId).ifPresentOrElse((dossierTemplate) -> {
BeanUtils.copyProperties(dossierTemplate, clonedDossierTemplate);
OffsetDateTime now = OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS);
clonedDossierTemplate.setId(UUID.randomUUID().toString());
clonedDossierTemplate.setName(nameOfClonedDossierTemplate);
clonedDossierTemplate.setCreatedBy(cloningUserId);
clonedDossierTemplate.setModifiedBy(cloningUserId);
clonedDossierTemplate.setDescription(dossierTemplate.getDescription());
clonedDossierTemplate.setDateAdded(now);
clonedDossierTemplate.setDateModified(now);
clonedDossierTemplate.setCreatedBy(cloningUserId);
clonedDossierTemplate.setModifiedBy(cloningUserId);
clonedDossierTemplate.setValidFrom(dossierTemplate.getValidFrom());
clonedDossierTemplate.setValidTo(dossierTemplate.getValidTo());
clonedDossierTemplate.setSoftDeleteTime(dossierTemplate.getSoftDeleteTime());
clonedDossierTemplate.setDownloadFileTypes(dossierTemplate.getDownloadFileTypes());
//set rules
rulesPersistenceService.setRules(rulesPersistenceService.getRules(dossierTemplate.getId()).getValue(), clonedDossierTemplate.getId());
//set legal basis
legalBasisMappingPersistenceService.setLegalBasisMapping(clonedDossierTemplate.getId(), convert(legalBasisMappingPersistenceService.getLegalBasisMapping(dossierTemplate.getId()), LegalBasis.class));
clonedDossierTemplate.setDossierTemplateStatus(DossierTemplateStatus.valueOf(computeDossierTemplateStatus(clonedDossierTemplate).name()));
dossierTemplateRepository.save(clonedDossierTemplate);
//set dictionaries
List<TypeEntity> clonedTypes = new ArrayList<>();
var types = dictionaryPersistenceService.getAllTypesForDossierTemplate(dossierTemplate.getId());
for (TypeEntity t : types) {
TypeEntity te = dictionaryPersistenceService.addType(t.getType(), clonedDossierTemplate.getId(), t.getHexColor(), t.getRecommendationHexColor(), t.getRank(), t.isHint(), t.isCaseInsensitive(), t.isRecommendation(), t.getDescription(), t.isAddToDictionaryAction(), t.getLabel(), null);
te.setDossierTemplateId(clonedDossierTemplate.getId());
clonedTypes.add(te);
}
clonedDossierTemplate.setDossierTypes(clonedTypes);
//set dossier attributes
var dossierAttributesConfig = dossierAttributeConfigPersistenceService.getDossierAttributes(dossierTemplate.getId());
List<DossierAttributeConfigEntity> dacList = new ArrayList<>();
dossierAttributesConfig.forEach(dossierAttributeConfigEntity -> {
var dac = DossierAttributeConfigEntity.builder()
.label(dossierAttributeConfigEntity.getLabel())
.editable(dossierAttributeConfigEntity.isEditable())
.placeholder(dossierAttributeConfigEntity.getPlaceholder())
.type(dossierAttributeConfigEntity.getType())
.build();
dacList.add(dac);
});
dossierAttributeConfigPersistenceService.setDossierAttributesConfig(clonedDossierTemplate.getId(), dacList);
//set file attributes
var fileAttributesGeneralConfig = fileAttributeConfigPersistenceService.getFileAttributesGeneralConfiguration(dossierTemplate.getId());
var fagc = FileAttributesGeneralConfigurationEntity.builder()
.dossierTemplateId(clonedDossierTemplate.getId())
.delimiter(fileAttributesGeneralConfig.getDelimiter())
.filenameMappingColumnHeaderName(fileAttributesGeneralConfig.getFilenameMappingColumnHeaderName())
.build();
fileAttributeConfigPersistenceService.setFileAttributesGeneralConfig(clonedDossierTemplate.getId(), fagc);
var fileAttributesConfig = fileAttributeConfigPersistenceService.getFileAttributes(dossierTemplate.getId());
List<FileAttributeConfigEntity> facList = new ArrayList<>();
fileAttributesConfig.forEach(fileAttributeConfigEntity -> {
var fac = FileAttributeConfigEntity.builder()
.csvColumnHeader(fileAttributeConfigEntity.getCsvColumnHeader())
.label(fileAttributeConfigEntity.getLabel())
.primaryAttribute(fileAttributeConfigEntity.isPrimaryAttribute())
.editable(fileAttributeConfigEntity.isEditable())
.filterable(fileAttributeConfigEntity.isFilterable())
.displayedInFileList(fileAttributeConfigEntity.isDisplayedInFileList())
.placeholder(fileAttributeConfigEntity.getPlaceholder())
.type(fileAttributeConfigEntity.getType())
.build();
facList.add(fac);
});
fileAttributeConfigPersistenceService.setFileAttributesConfig(clonedDossierTemplate.getId(), facList);
clonedDossierTemplate.setFileAttributeConfigs(fileAttributeConfigPersistenceService.getFileAttributes(clonedDossierTemplate.getId()));
//set report templates
var reportTemplates = dossierTemplate.getReportTemplates();
for (ReportTemplateEntity rte : reportTemplates) {
var storedReportTemplate = storageService.getObject(rte.getStorageId());
String storageId = clonedDossierTemplate.getId() + "/" + rte.getFileName();
String templateId = UUID.randomUUID().toString();
try {
storageService.storeObject(storageId, storedReportTemplate.getInputStream());
} catch (IOException e) {
throw new ConflictException("Could not clone dossier template.");
}
reportTemplatePersistenceService.insert(clonedDossierTemplate.getId(), templateId, storageId, rte.getFileName(), rte.isActiveByDefault(), rte.isMultiFileReport());
}
clonedDossierTemplate.setReportTemplates(reportTemplatePersistenceService.findByDossierTemplateId(clonedDossierTemplate.getId()));
//set watermarks
var watermark = watermarkService.getWatermark(dossierTemplate.getId());
WatermarkEntity we = WatermarkEntity.builder()
.dossierTemplateId(clonedDossierTemplate.getId())
.text(watermark.getText())
.hexColor(watermark.getHexColor())
.opacity(watermark.getOpacity())
.fontType(watermark.getFontType())
.fontSize(watermark.getFontSize())
.orientation(watermark.getOrientation())
.build();
watermarkService.saveWatermark(clonedDossierTemplate.getId(), we);
//set colors
var colors = colorsService.getColors(dossierTemplate.getId());
var clonedColors = new ColorsEntity();
BeanUtils.copyProperties(colors, clonedColors);
clonedColors.setDossierTemplateId(clonedDossierTemplate.getId());
colorsService.saveColors(clonedColors);
dossierTemplateRepository.save(clonedDossierTemplate);
}, () -> {
throw new NotFoundException(String.format(DOSSIER_TEMPLATE_NOT_FOUND_MESSAGE, dossierTemplateId));
});

View File

@ -1,26 +1,62 @@
package com.iqser.red.service.peristence.v1.server.integration.tests;
import com.iqser.red.service.peristence.v1.server.integration.client.DossierClient;
import com.iqser.red.service.peristence.v1.server.integration.client.DossierTemplateClient;
import com.iqser.red.service.peristence.v1.server.integration.client.LegalBasisClient;
import com.iqser.red.service.peristence.v1.server.integration.client.RulesClient;
import com.iqser.red.service.peristence.v1.server.integration.service.DossierTemplateTesterAndProvider;
import com.iqser.red.service.peristence.v1.server.integration.service.DossierTesterAndProvider;
import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest;
import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.CreateOrUpdateDossierTemplateRequest;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DossierTemplateStatus;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.legalbasis.LegalBasis;
import feign.FeignException;
import org.junit.Test;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.when;
import java.nio.charset.StandardCharsets;
import java.time.OffsetDateTime;
import java.util.Collections;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.mock.mockito.MockBean;
import com.iqser.red.service.peristence.v1.server.integration.client.DictionaryClient;
import com.iqser.red.service.peristence.v1.server.integration.client.DossierAttributeConfigClient;
import com.iqser.red.service.peristence.v1.server.integration.client.DossierClient;
import com.iqser.red.service.peristence.v1.server.integration.client.DossierTemplateClient;
import com.iqser.red.service.peristence.v1.server.integration.client.FileAttributeConfigClient;
import com.iqser.red.service.peristence.v1.server.integration.client.ReportTemplateClient;
import com.iqser.red.service.peristence.v1.server.integration.client.WatermarkClient;
import com.iqser.red.service.peristence.v1.server.integration.service.DossierTemplateTesterAndProvider;
import com.iqser.red.service.peristence.v1.server.integration.service.DossierTesterAndProvider;
import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest;
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.ColorsEntity;
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.FileAttributesGeneralConfigurationEntity;
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.TypeEntity;
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.WatermarkEntity;
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierAttributeConfigEntity;
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierTemplateEntity;
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileAttributeConfigEntity;
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.ReportTemplateEntity;
import com.iqser.red.service.persistence.management.v1.processor.service.ColorsService;
import com.iqser.red.service.persistence.management.v1.processor.service.WatermarkService;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DictionaryPersistenceService;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierAttributeConfigPersistenceService;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileAttributeConfigPersistenceService;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.ReportTemplatePersistenceService;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.CreateOrUpdateDossierTemplateRequest;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DossierAttributeConfig;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DossierTemplateStatus;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.FileAttributesGeneralConfiguration;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplateUploadRequest;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.Colors;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.Watermark;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.WatermarkOrientation;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierAttributeType;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileAttributeConfig;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileAttributeType;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.type.DictionaryEntry;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.type.Type;
import feign.FeignException;
public class DossierTemplateTest extends AbstractPersistenceServerServiceTest {
@ -36,6 +72,22 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest {
@Autowired
private DossierClient dossierClient;
@Autowired
private DictionaryClient dictionaryClient;
@Autowired
private DossierAttributeConfigClient dossierAttributeConfigClient;
@Autowired
private FileAttributeConfigClient fileAttributeConfigClient;
@Autowired
private ReportTemplateClient reportTemplateClient;
@Autowired
private WatermarkClient watermarkClient;
@Test
public void testDossierTemplate() {
@ -45,7 +97,6 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest {
assertThat(allTemplates.size()).isEqualTo(1);
assertThat(allTemplates.get(0)).isEqualTo(dossierTemplate);
// update
CreateOrUpdateDossierTemplateRequest cru = new CreateOrUpdateDossierTemplateRequest();
cru.setDossierTemplateId(dossierTemplate.getId());
@ -55,7 +106,6 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest {
var updated = dossierTemplateClient.createOrUpdateDossierTemplate(cru);
assertThat(updated.getName()).isEqualTo("Template 1 Update");
var loadedTemplate = dossierTemplateClient.getDossierTemplate(dossierTemplate.getId());
assertThat(loadedTemplate).isEqualTo(updated);
@ -68,9 +118,9 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest {
var testDossier = dossierTesterAndProvider.provideTestDossier(updated);
try{
try {
dossierTemplateClient.deleteDossierTemplate(updated.getId(), "1");
}catch (FeignException e){
} catch (FeignException e) {
assertThat(e.status()).isEqualTo(400);
}
@ -82,7 +132,8 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest {
@Test(expected = FeignException.class)
public void testDossierTemplateUniqueNameConflict(){
public void testDossierTemplateUniqueNameConflict() {
var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate();
var dossierTemplate2 = dossierTemplateTesterAndProvider.provideTestTemplate();
}
@ -90,8 +141,91 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest {
@Test
public void testCloneDossierTemplate() {
var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate();
Type type = Type.builder()
.id("t.id")
.type("t.getType()")
.dossierTemplateId(dossierTemplate.getId())
.hexColor("#ddddd")
.recommendationHexColor("#cccccc")
.rank(999)
.isHint(false)
.isRecommendation(false)
.isCaseInsensitive(false)
.description("t.getDescription()")
.addToDictionaryAction(true)
.label("t.getLabel()")
.dossierId(null)
.version(23)
.entries(List.of(DictionaryEntry.builder().entryId(1001).value("dictEntry1").version(23).deleted(false).typeId("t.getType()").build()))
.falsePositiveEntries(List.of(DictionaryEntry.builder().entryId(2001).value("dictEntry2").version(23).deleted(false).typeId("t.getType()").build()))
.falseRecommendationEntries(List.of(DictionaryEntry.builder().entryId(3001).value("dictEntry3").version(23).deleted(false).typeId("t.getType()").build()))
.build();
dictionaryClient.addType(type);
dossierAttributeConfigClient.setDossierAttributesConfig(dossierTemplate.getId(), List.of(DossierAttributeConfig.builder()
.dossierTemplateId(dossierTemplate.getId())
.editable(false)
.id("dossierAttributeId")
.label("labelDossierAttribute")
.type(DossierAttributeType.TEXT)
.placeholder("placeholderDossier")
.build()));
fileAttributeConfigClient.setFileAttributesGeneralConfig(dossierTemplate.getId(), FileAttributesGeneralConfiguration.builder()
.dossierTemplateId(dossierTemplate.getId())
.delimiter("")
.filenameMappingColumnHeaderName("filenameMappingColumnHeaderName")
.build());
fileAttributeConfigClient.setFileAttributesConfig(dossierTemplate.getId(), List.of(FileAttributeConfig.builder()
.dossierTemplateId(dossierTemplate.getId())
.primaryAttribute(true)
.csvColumnHeader("12345")
.displayedInFileList(false)
.editable(false)
.filterable(false)
.id("fileAttributeId")
.label("labelFileAttribute")
.type(FileAttributeType.TEXT)
.placeholder("placeholderFile")
.build()));
ReportTemplateEntity rte = ReportTemplateEntity.builder()
.templateId("templateId")
.dossierTemplate(convert(dossierTemplate, DossierTemplateEntity.class))
.dossierTemplateId(dossierTemplate.getId())
.dossiers(null)
.activeByDefault(false)
.fileName("rte")
.multiFileReport(false)
.storageId("storageId")
.uploadDate(OffsetDateTime.now())
.build();
reportTemplateClient.uploadTemplate(ReportTemplateUploadRequest.builder().template("some text".getBytes(StandardCharsets.UTF_8)).dossierTemplateId(dossierTemplate.getId()).fileName("Report Template").activeByDefault(true).multiFileReport(false).build());
watermarkClient.saveWatermark(dossierTemplate.getId(), Watermark.builder()
.dossierTemplateId(dossierTemplate.getId())
.fontSize(10)
.fontType("Arial")
.text("watermark")
.hexColor("#123456")
.opacity(1)
.orientation(WatermarkOrientation.HORIZONTAL)
.build());
var col = Colors.builder()
.analysisColor("#111111")
.defaultColor("#222222")
.dossierTemplateId(dossierTemplate.getId())
.dictionaryRequestColor("#333333")
.requestAdd("#444444")
.ignoredHintColor("#555555")
.requestRemove("#666666")
.requestRemove("#777777")
.notRedacted("#888888")
.previewColor("#999999")
.updatedColor("#aaaaaa")
.manualRedactionColor("#bbbbbb")
.build();
dictionaryClient.setColors(dossierTemplate.getId(), col);
var allTemplates = dossierTemplateClient.getAllDossierTemplates();
assertThat(allTemplates.size()).isEqualTo(1);
assertThat(allTemplates.get(0)).isEqualTo(dossierTemplate);
@ -100,7 +234,6 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest {
assertThat(clonedDT.getName()).isEqualTo("Clone of " + dossierTemplate.getName());
var loadedTemplate = dossierTemplateClient.getDossierTemplate(clonedDT.getId());
assertThat(loadedTemplate).isEqualTo(clonedDT);
assertThat(loadedTemplate.getId()).isEqualTo(clonedDT.getId());
assertThat(loadedTemplate.getDescription()).isEqualTo(dossierTemplate.getDescription());
assertThat(loadedTemplate.getValidFrom()).isEqualTo(dossierTemplate.getValidFrom());
@ -108,6 +241,13 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest {
assertThat(loadedTemplate.getDownloadFileTypes()).isEqualTo(dossierTemplate.getDownloadFileTypes());
assertThat(loadedTemplate.getModifiedBy()).isEqualTo("user");
assertThat(loadedTemplate.getCreatedBy()).isEqualTo("user");
assertThat(dossierAttributeConfigClient.getDossierAttributes(dossierTemplate.getId()).get(0).getLabel()).isEqualTo(dossierAttributeConfigClient.getDossierAttributes(clonedDT.getId()).get(0).getLabel());
assertThat(fileAttributeConfigClient.getFileAttributeConfigs(dossierTemplate.getId()).get(0).getCsvColumnHeader()).isEqualTo(fileAttributeConfigClient.getFileAttributeConfigs(clonedDT.getId()).get(0).getCsvColumnHeader());
assertThat(fileAttributeConfigClient.getFileAttributesGeneralConfig(dossierTemplate.getId()).getFilenameMappingColumnHeaderName()).isEqualTo(fileAttributeConfigClient.getFileAttributesGeneralConfig(clonedDT.getId()).getFilenameMappingColumnHeaderName());
assertThat(reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId()).get(0).getFileName()).isEqualTo(reportTemplateClient.getAvailableReportTemplates(clonedDT.getId()).get(0).getFileName());
assertThat(watermarkClient.getWatermark(dossierTemplate.getId()).getText()).isEqualTo(watermarkClient.getWatermark(clonedDT.getId()).getText());
assertThat(dictionaryClient.getColors(dossierTemplate.getId()).getRequestAdd()).isEqualTo(dictionaryClient.getColors(clonedDT.getId()).getRequestAdd());
}
}