RED-10529: Primary attribute removed after changing encoding type
This commit is contained in:
parent
15ca9ade53
commit
5210b8ec40
@ -61,9 +61,9 @@ public class FileAttributesController implements FileAttributesResource {
|
||||
}
|
||||
fileAttributeConfigPersistenceService.setFileAttributesGeneralConfig(dossierTemplateId,
|
||||
MagicConverter.convert(fileAttributesConfig, FileAttributesGeneralConfigurationEntity.class));
|
||||
var result = fileAttributeConfigPersistenceService.setFileAttributesConfig(dossierTemplateId,
|
||||
MagicConverter.convert(fileAttributesConfig.getFileAttributeConfigs(),
|
||||
FileAttributeConfigEntity.class));
|
||||
fileAttributeConfigPersistenceService.setFileAttributesConfig(dossierTemplateId,
|
||||
MagicConverter.convert(fileAttributesConfig.getFileAttributeConfigs(), FileAttributeConfigEntity.class));
|
||||
|
||||
auditPersistenceService.audit(AuditRequest.builder()
|
||||
.userId(KeycloakSecurity.getUserId())
|
||||
.objectId(dossierTemplateId)
|
||||
@ -74,7 +74,7 @@ public class FileAttributesController implements FileAttributesResource {
|
||||
.filenameMappingColumnHeaderName(fileAttributesConfig.getFilenameMappingColumnHeaderName())
|
||||
.delimiter(fileAttributesConfig.getDelimiter())
|
||||
.encoding(fileAttributesConfig.getEncoding())
|
||||
.fileAttributeConfigs(MagicConverter.convert(result, FileAttributeConfig.class))
|
||||
.fileAttributeConfigs(MagicConverter.convert(fileAttributeConfigPersistenceService.getFileAttributes(dossierTemplateId), FileAttributeConfig.class))
|
||||
.build();
|
||||
|
||||
}
|
||||
|
||||
@ -81,7 +81,7 @@ public class FileAttributeConfigPersistenceService {
|
||||
|
||||
|
||||
@Transactional
|
||||
public List<FileAttributeConfigEntity> setFileAttributesConfig(String dossierTemplateId, List<FileAttributeConfigEntity> fileAttributesConfig) {
|
||||
public void setFileAttributesConfig(String dossierTemplateId, List<FileAttributeConfigEntity> fileAttributesConfig) {
|
||||
|
||||
Set<String> toSetIds = fileAttributesConfig.stream()
|
||||
.map(FileAttributeConfigEntity::getId)
|
||||
@ -98,8 +98,6 @@ public class FileAttributeConfigPersistenceService {
|
||||
fileAttributesRepository.deleteByFileAttributeConfigId(ctr.getId());
|
||||
fileAttributeConfigRepository.deleteById(ctr.getId());
|
||||
});
|
||||
|
||||
return getFileAttributes(dossierTemplateId);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -15,7 +15,7 @@ public interface FileAttributeConfigRepository extends JpaRepository<FileAttribu
|
||||
List<FileAttributeConfigEntity> findByDossierTemplateId(String dossierTemplateId);
|
||||
|
||||
|
||||
@Modifying
|
||||
@Modifying(clearAutomatically = true)
|
||||
@Query("update FileAttributeConfigEntity e set e.primaryAttribute = false where e.dossierTemplate.id = :dossierTemplateId")
|
||||
void updateAllPrimaryAttributeValuesToFalse(@Param("dossierTemplateId") String dossierTemplateId);
|
||||
|
||||
|
||||
@ -396,4 +396,83 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest {
|
||||
|
||||
}
|
||||
|
||||
@SneakyThrows
|
||||
@Test
|
||||
public void testUpdatePrimaryAttributeAndVerify() {
|
||||
|
||||
var dossier = dossierTesterAndProvider.provideTestDossier();
|
||||
var file = fileTesterAndProvider.testAndProvideFile(dossier);
|
||||
|
||||
List<FileAttributeConfig> initialConfigs = new ArrayList<>();
|
||||
initialConfigs.add(FileAttributeConfig.builder()
|
||||
.csvColumnHeader("Attribute A")
|
||||
.primaryAttribute(true)
|
||||
.label("Attribute A")
|
||||
.build());
|
||||
initialConfigs.add(FileAttributeConfig.builder()
|
||||
.csvColumnHeader("Attribute B")
|
||||
.primaryAttribute(false)
|
||||
.label("Attribute B")
|
||||
.build());
|
||||
initialConfigs.add(FileAttributeConfig.builder()
|
||||
.csvColumnHeader("Attribute C")
|
||||
.primaryAttribute(false)
|
||||
.label("Attribute C")
|
||||
.build());
|
||||
|
||||
FileAttributesConfig initialConfig = new FileAttributesConfig();
|
||||
initialConfig.setDelimiter(",");
|
||||
initialConfig.setEncoding(UTF_ENCODING);
|
||||
initialConfig.setFilenameMappingColumnHeaderName("Name");
|
||||
initialConfig.setFileAttributeConfigs(initialConfigs);
|
||||
|
||||
fileAttributeConfigClient.setFileAttributesConfig(dossier.getDossierTemplateId(), initialConfig);
|
||||
|
||||
var loadedInitialConfig = fileAttributeConfigClient.getFileAttributesConfiguration(dossier.getDossierTemplateId());
|
||||
assertThat(loadedInitialConfig.getFileAttributeConfigs()).hasSize(3);
|
||||
FileAttributeConfig initialPrimary = loadedInitialConfig.getFileAttributeConfigs().stream()
|
||||
.filter(FileAttributeConfig::isPrimaryAttribute)
|
||||
.findFirst()
|
||||
.orElseThrow(() -> new AssertionError("No primary attribute found initially"));
|
||||
assertThat(initialPrimary.getLabel()).isEqualTo("Attribute A");
|
||||
|
||||
List<FileAttributeConfig> updatedConfigs = loadedInitialConfig.getFileAttributeConfigs().stream()
|
||||
.map(config -> {
|
||||
if (config.getLabel().equals("Attribute B")) {
|
||||
config.setPrimaryAttribute(true);
|
||||
} else if (config.getLabel().equals("Attribute A")) {
|
||||
config.setPrimaryAttribute(false);
|
||||
}
|
||||
return config;
|
||||
})
|
||||
.collect(Collectors.toList());
|
||||
|
||||
FileAttributesConfig updatedConfig = new FileAttributesConfig();
|
||||
updatedConfig.setDelimiter(loadedInitialConfig.getDelimiter());
|
||||
updatedConfig.setEncoding(loadedInitialConfig.getEncoding());
|
||||
updatedConfig.setFilenameMappingColumnHeaderName(loadedInitialConfig.getFilenameMappingColumnHeaderName());
|
||||
updatedConfig.setFileAttributeConfigs(updatedConfigs);
|
||||
|
||||
fileAttributeConfigClient.setFileAttributesConfig(dossier.getDossierTemplateId(), updatedConfig);
|
||||
|
||||
var loadedUpdatedConfig = fileAttributeConfigClient.getFileAttributesConfiguration(dossier.getDossierTemplateId());
|
||||
assertThat(loadedUpdatedConfig.getFileAttributeConfigs()).hasSize(3);
|
||||
FileAttributeConfig newPrimary = loadedUpdatedConfig.getFileAttributeConfigs().stream()
|
||||
.filter(FileAttributeConfig::isPrimaryAttribute)
|
||||
.findFirst()
|
||||
.orElseThrow(() -> new AssertionError("No primary attribute found after update"));
|
||||
assertThat(newPrimary.getLabel()).isEqualTo("Attribute B");
|
||||
|
||||
fileAttributeConfigClient.setFileAttributesConfig(dossier.getDossierTemplateId(), loadedUpdatedConfig);
|
||||
|
||||
var reloadedConfig = fileAttributeConfigClient.getFileAttributesConfiguration(dossier.getDossierTemplateId());
|
||||
assertThat(reloadedConfig.getFileAttributeConfigs()).hasSize(3);
|
||||
FileAttributeConfig verifiedPrimary = reloadedConfig.getFileAttributeConfigs().stream()
|
||||
.filter(FileAttributeConfig::isPrimaryAttribute)
|
||||
.findFirst()
|
||||
.orElseThrow(() -> new AssertionError("No primary attribute found after reapplying configuration"));
|
||||
assertThat(verifiedPrimary.getLabel()).isEqualTo("Attribute B");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user