RED-3834 - On saving attribute values, blank strings should be normalized to null
- when setting file / dossier attributes, blank strings are be normalized to null - update junit tests
This commit is contained in:
parent
c3944cf274
commit
035d2d591d
@ -25,14 +25,15 @@ public class DossierAttributePersistenceService {
|
||||
|
||||
DossierAttributeEntity dossierAttribute = new DossierAttributeEntity();
|
||||
dossierAttribute.setId(new DossierAttributeEntity.DossierAttributeEntityId(dossierId, dossierAttributeId));
|
||||
dossierAttribute.setValue(dossierAttributeValue);
|
||||
dossierAttribute.setValue(dossierAttributeValue != null && dossierAttributeValue.trim().isEmpty()? null: dossierAttributeValue);
|
||||
dossierAttributeRepository.saveAndFlush(dossierAttribute);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public void updateDossierAttribute(String dossierId, String dossierAttributeId, String dossierAttributeValue) {
|
||||
|
||||
dossierAttributeRepository.updateDossierAttribute(new DossierAttributeEntity.DossierAttributeEntityId(dossierId, dossierAttributeId), dossierAttributeValue);
|
||||
dossierAttributeRepository.updateDossierAttribute(new DossierAttributeEntity.DossierAttributeEntityId(dossierId, dossierAttributeId),
|
||||
(dossierAttributeValue != null && dossierAttributeValue.trim().isEmpty()) ? null: dossierAttributeValue);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -328,7 +328,7 @@ public class FileStatusPersistenceService {
|
||||
.findAny().map(FileAttributeConfigEntity::getId)
|
||||
.orElseThrow(() -> new BadRequestException("Invalid File Attribute Id")));
|
||||
fa.setFileAttributeId(id);
|
||||
fa.setValue(entry.getValue());
|
||||
fa.setValue((entry.getValue()!= null && entry.getValue().trim().isEmpty())? null : entry.getValue());
|
||||
return fa;
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@ -48,4 +48,6 @@ databaseChangeLog:
|
||||
- include:
|
||||
file: db/changelog/20-add-index-information-table.yaml
|
||||
- include:
|
||||
file: db/changelog/21-added-auto-hide-skipped-to-entities.changelog.yaml
|
||||
file: db/changelog/21-added-auto-hide-skipped-to-entities.changelog.yaml
|
||||
- include:
|
||||
file: db/changelog/sql/22-update-file-dossier-attributes.sql
|
||||
@ -0,0 +1,2 @@
|
||||
update file_attribute set value = null where trim(value) = '';
|
||||
update dossier_attribute set value = null where trim(value) = '';
|
||||
@ -77,20 +77,27 @@ public class DossierAttributeTest extends AbstractPersistenceServerServiceTest {
|
||||
dossierAttributes.add(DossierAttribute.builder().dossierAttributeConfigId(configId).dossierId(dossier.getId()).value("lorem ipsum").build());
|
||||
dossierAttributeClient.setDossierAttributes(dossier.getId(), dossierAttributes);
|
||||
|
||||
|
||||
var loadedAttributeValues = dossierAttributeClient.getDossierAttributes(dossier.getId());
|
||||
assertThat(loadedAttributeValues).isNotEmpty();
|
||||
|
||||
var firstAttribute = loadedAttributeValues.iterator().next();
|
||||
assertThat(firstAttribute.getValue()).isEqualTo("lorem ipsum");
|
||||
firstAttribute.setValue("test");
|
||||
dossierAttributeClient.addOrUpdateDossierAttribute(dossier.getId(), firstAttribute);
|
||||
|
||||
firstAttribute.setValue(" ");
|
||||
dossierAttributeClient.addOrUpdateDossierAttribute(dossier.getId(), firstAttribute);
|
||||
|
||||
loadedAttributeValues = dossierAttributeClient.getDossierAttributes(dossier.getId());
|
||||
assertThat(loadedAttributeValues).isNotEmpty();
|
||||
firstAttribute = loadedAttributeValues.iterator().next();
|
||||
assertThat(firstAttribute.getValue()).isEqualTo("test");
|
||||
assertThat(firstAttribute.getValue()).isNull();
|
||||
|
||||
firstAttribute.setValue(null);
|
||||
dossierAttributeClient.addOrUpdateDossierAttribute(dossier.getId(), firstAttribute);
|
||||
|
||||
loadedAttributeValues = dossierAttributeClient.getDossierAttributes(dossier.getId());
|
||||
assertThat(loadedAttributeValues).isNotEmpty();
|
||||
firstAttribute = loadedAttributeValues.iterator().next();
|
||||
assertThat(firstAttribute.getValue()).isNull();
|
||||
|
||||
dossierAttributeClient.deleteDossierAttribute(dossier.getId(), firstAttribute.getDossierAttributeConfigId());
|
||||
loadedAttributeValues = dossierAttributeClient.getDossierAttributes(dossier.getId());
|
||||
|
||||
@ -3,6 +3,7 @@ package com.iqser.red.service.peristence.v1.server.integration.tests;
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
@ -133,6 +134,22 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest {
|
||||
assertThat(fileAttributes.size()).isEqualTo(1);
|
||||
assertThat(fileAttributes.entrySet().iterator().next().getValue()).isEqualTo("Lorem Ipsum");
|
||||
|
||||
fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), Map.of(updated.getId(), " "));
|
||||
|
||||
fileAttributes = fileClient.getFileStatus(dossier.getId(), file.getId())
|
||||
.getFileAttributes();
|
||||
assertThat(fileAttributes.size()).isEqualTo(1);
|
||||
assertThat(fileAttributes.entrySet().iterator().next().getValue()).isNull();
|
||||
|
||||
Map<String, String> fileAttributesWithNullValue = new HashMap<>();
|
||||
fileAttributesWithNullValue.put(updated.getId(), null);
|
||||
fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), fileAttributesWithNullValue);
|
||||
|
||||
fileAttributes = fileClient.getFileStatus(dossier.getId(), file.getId())
|
||||
.getFileAttributes();
|
||||
assertThat(fileAttributes.size()).isEqualTo(1);
|
||||
assertThat(fileAttributes.entrySet().iterator().next().getValue()).isNull();
|
||||
|
||||
var request = new ImportCsvRequest();
|
||||
request.setCsvFile(IOUtils.toByteArray(new ClassPathResource("files/test.csv").getInputStream()));
|
||||
fileAttributeClient.importCsv(dossier.getId(), request);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user