RED-10071 - Create system-managed entities automatically - fix component definitions

- when import dossier template with update before inserting component definitions, remove the existing ones
- unit test added
This commit is contained in:
corinaolariu 2024-10-29 18:51:01 +02:00
parent a2e1b4367a
commit 4c5f164f2e
3 changed files with 21 additions and 0 deletions

View File

@ -627,6 +627,9 @@ public class DossierTemplateImportService {
private void updateComponents(ImportTemplateResult request, String dossierTemplateId) {
List<ComponentDefinitionEntity> existingComponentDefinitions = componentDefinitionPersistenceService.findComponentsByDossierTemplateId(dossierTemplateId);
existingComponentDefinitions.forEach(componentDefinition -> componentDefinitionPersistenceService.delete(componentDefinition.getId()));
request.getComponentDefinitions()
.forEach(componentDefinition -> {
componentDefinition.setDossierTemplateId(dossierTemplateId);

View File

@ -149,6 +149,24 @@ public class DossierTemplateImportTest extends AbstractPersistenceServerServiceT
assertThat(systemManagedTypes.size()).isEqualTo(8);
}
@SneakyThrows
@Test
public void testDossierTemplateImportAsUpdateDM() {
TenantContext.setTenantId("redaction");
var archive = loadFileFromClasspath("dm.zip");
var request = ImportDossierTemplateRequest.builder().archive(archive).updateExistingDossierTemplate(false).userId("system").build();
DossierTemplate dossierTemplate = dossierTemplateManagementService.importDossierTemplate(request);
TypeResponse types = dictionaryClient.getAllTypes(dossierTemplate.getId(), null, true);
List<TypeValue> systemManagedTypes = types.getTypes().stream().filter(TypeValue::isSystemManaged).collect(Collectors.toList());
assertThat(systemManagedTypes.size()).isEqualTo(8);
var request1 = ImportDossierTemplateRequest.builder().archive(archive).dossierTemplateId(dossierTemplate.getId()).updateExistingDossierTemplate(true).userId("system").build();
dossierTemplateManagementService.importDossierTemplate(request1);
}
@SneakyThrows
@Test
public void testDossierTemplateImportWithTheSameName() {