RED-8432: Return 400 if invalid date for file attributes is set #346

Merged
maverick.studer merged 1 commits from RED-8432 into master 2024-02-12 13:58:49 +01:00
4 changed files with 187 additions and 83 deletions

View File

@ -69,21 +69,27 @@ public class DossierAttributeTest extends AbstractPersistenceServerServiceTest {
assertThat(loadedAttributes.getDossierAttributeConfigs()).isNotEmpty();
dossierAttributeConfigClient.deleteDossierAttributesConfig(dossier.getDossierTemplateId(),
loadedAttributes.getDossierAttributeConfigs().stream().map(DossierAttributeConfig::getId).collect(Collectors.toList()));
loadedAttributes.getDossierAttributeConfigs()
.stream()
.map(DossierAttributeConfig::getId)
.collect(Collectors.toList()));
dossierAttributeConfigClient.setDossierAttributesConfig(dossier.getDossierTemplateId(), new DossierAttributesConfig(List.of(attribute)));
loadedAttributes = dossierAttributeConfigClient.getDossierAttributesConfig(dossier.getDossierTemplateId());
assertThat(loadedAttributes.getDossierAttributeConfigs()).isNotEmpty();
var configId = loadedAttributes.getDossierAttributeConfigs().iterator().next().getId();
var configId = loadedAttributes.getDossierAttributeConfigs()
.iterator().next().getId();
List<DossierAttribute> dossierAttributes = new ArrayList<>();
dossierAttributes.add(DossierAttribute.builder().dossierAttributeConfigId(configId).dossierId(dossier.getId()).value("lorem ipsum").build());
dossierAttributes.add(DossierAttribute.builder().dossierAttributeConfigId(configId).dossierId(dossier.getId()).value("lorem ipsum")
.build());
dossierAttributeClient.setDossierAttributes(dossier.getId(), new DossierAttributes(dossierAttributes));
var loadedAttributeValues = dossierAttributeClient.getDossierAttributes(dossier.getId());
assertThat(loadedAttributeValues.getDossierAttributeList()).isNotEmpty();
var firstAttribute = loadedAttributeValues.getDossierAttributeList().iterator().next();
var firstAttribute = loadedAttributeValues.getDossierAttributeList()
.iterator().next();
assertThat(firstAttribute.getValue()).isEqualTo("lorem ipsum");
firstAttribute.setValue(" ");
@ -91,7 +97,8 @@ public class DossierAttributeTest extends AbstractPersistenceServerServiceTest {
loadedAttributeValues = dossierAttributeClient.getDossierAttributes(dossier.getId());
assertThat(loadedAttributeValues.getDossierAttributeList()).isNotEmpty();
firstAttribute = loadedAttributeValues.getDossierAttributeList().iterator().next();
firstAttribute = loadedAttributeValues.getDossierAttributeList()
.iterator().next();
assertThat(firstAttribute.getValue()).isNull();
firstAttribute.setValue(null);
@ -99,7 +106,8 @@ public class DossierAttributeTest extends AbstractPersistenceServerServiceTest {
loadedAttributeValues = dossierAttributeClient.getDossierAttributes(dossier.getId());
assertThat(loadedAttributeValues.getDossierAttributeList()).isNotEmpty();
firstAttribute = loadedAttributeValues.getDossierAttributeList().iterator().next();
firstAttribute = loadedAttributeValues.getDossierAttributeList()
.iterator().next();
assertThat(firstAttribute.getValue()).isNull();
dossierAttributeClient.deleteDossierAttribute(dossier.getId(), firstAttribute.getDossierAttributeConfigId());
@ -112,7 +120,8 @@ public class DossierAttributeTest extends AbstractPersistenceServerServiceTest {
//delete the list of dossier attribute config with child
dossierAttributeConfigClient.deleteDossierAttributesConfig(dossier.getDossierTemplateId(),
Lists.newArrayList(loadedAttributes.getDossierAttributeConfigs().iterator().next().getId()));
Lists.newArrayList(loadedAttributes.getDossierAttributeConfigs()
.iterator().next().getId()));
loadedAttributes = dossierAttributeConfigClient.getDossierAttributesConfig(dossier.getDossierTemplateId());
assertThat(loadedAttributes.getDossierAttributeConfigs()).isEmpty();
loadedAttributeValues = dossierAttributeClient.getDossierAttributes(dossier.getId());
@ -131,15 +140,20 @@ public class DossierAttributeTest extends AbstractPersistenceServerServiceTest {
assertThat(loadedAttributes.getDossierAttributeConfigs()).isEmpty();
dossierAttributeConfigClient.addOrUpdateDossierAttributeConfig(dossier.getDossierTemplateId(),
DossierAttributeConfig.builder().label("Text").editable(true).type(DossierAttributeType.TEXT).build());
DossierAttributeConfig.builder().label("Text").editable(true).type(DossierAttributeType.TEXT)
.build());
dossierAttributeConfigClient.addOrUpdateDossierAttributeConfig(dossier.getDossierTemplateId(),
DossierAttributeConfig.builder().label("Number").editable(true).type(DossierAttributeType.NUMBER).build());
DossierAttributeConfig.builder().label("Number").editable(true).type(DossierAttributeType.NUMBER)
.build());
dossierAttributeConfigClient.addOrUpdateDossierAttributeConfig(dossier.getDossierTemplateId(),
DossierAttributeConfig.builder().label("Date").editable(true).type(DossierAttributeType.DATE).build());
DossierAttributeConfig.builder().label("Date").editable(true).type(DossierAttributeType.DATE)
.build());
dossierAttributeConfigClient.addOrUpdateDossierAttributeConfig(dossier.getDossierTemplateId(),
DossierAttributeConfig.builder().label("Image1").editable(true).type(DossierAttributeType.IMAGE).build());
DossierAttributeConfig.builder().label("Image1").editable(true).type(DossierAttributeType.IMAGE)
.build());
dossierAttributeConfigClient.addOrUpdateDossierAttributeConfig(dossier.getDossierTemplateId(),
DossierAttributeConfig.builder().label("Image2").editable(true).type(DossierAttributeType.IMAGE).build());
DossierAttributeConfig.builder().label("Image2").editable(true).type(DossierAttributeType.IMAGE)
.build());
loadedAttributes = dossierAttributeConfigClient.getDossierAttributesConfig(dossier.getDossierTemplateId());
assertThat(loadedAttributes.getDossierAttributeConfigs().size()).isEqualTo(5);
@ -151,68 +165,127 @@ public class DossierAttributeTest extends AbstractPersistenceServerServiceTest {
String valueConfig3 = "data:image/png;base64,w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==...";
String valueConfig4 = "data:image/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4...";
List<DossierAttribute> dossierAttributes = new ArrayList<>();
dossierAttributes.add(DossierAttribute.builder().dossierAttributeConfigId(configIds.get(0).getId()).dossierId(dossier.getId()).value(valueConfig0).build());
dossierAttributes.add(DossierAttribute.builder().dossierAttributeConfigId(configIds.get(1).getId()).dossierId(dossier.getId()).value(valueConfig1).build());
dossierAttributes.add(DossierAttribute.builder().dossierAttributeConfigId(configIds.get(2).getId()).dossierId(dossier.getId()).value(valueConfig2).build());
dossierAttributes.add(DossierAttribute.builder().dossierAttributeConfigId(configIds.get(3).getId()).dossierId(dossier.getId()).value(valueConfig3).build());
dossierAttributes.add(DossierAttribute.builder().dossierAttributeConfigId(configIds.get(0).getId()).dossierId(dossier.getId()).value(valueConfig0)
.build());
dossierAttributes.add(DossierAttribute.builder().dossierAttributeConfigId(configIds.get(1).getId()).dossierId(dossier.getId()).value(valueConfig1)
.build());
dossierAttributes.add(DossierAttribute.builder().dossierAttributeConfigId(configIds.get(2).getId()).dossierId(dossier.getId()).value(valueConfig2)
.build());
dossierAttributes.add(DossierAttribute.builder().dossierAttributeConfigId(configIds.get(3).getId()).dossierId(dossier.getId()).value(valueConfig3)
.build());
dossierAttributeClient.setDossierAttributes(dossier.getId(), new DossierAttributes(dossierAttributes));
DossierAttribute imageAttribute = DossierAttribute.builder().dossierAttributeConfigId(configIds.get(4).getId()).dossierId(dossier.getId()).value(valueConfig4).build();
DossierAttribute imageAttribute = DossierAttribute.builder().dossierAttributeConfigId(configIds.get(4).getId()).dossierId(dossier.getId()).value(valueConfig4)
.build();
dossierAttributeClient.addOrUpdateDossierAttribute(dossier.getId(), imageAttribute);
var loadedAttributeValues = dossierAttributeClient.getDossierAttributes(dossier.getId());
assertThat(loadedAttributeValues.getDossierAttributeList().size()).isEqualTo(5);
assertThat(loadedAttributeValues.getDossierAttributeList().get(0).getValue()).isEqualTo(valueConfig0);
assertThat(loadedAttributeValues.getDossierAttributeList().get(1).getValue()).isEqualTo(valueConfig1);
assertThat(loadedAttributeValues.getDossierAttributeList().get(2).getValue()).isEqualTo(valueConfig2);
assertThat(loadedAttributeValues.getDossierAttributeList().get(3).getValue()).isEqualTo(valueConfig3);
assertThat(loadedAttributeValues.getDossierAttributeList().get(4).getValue()).isEqualTo(valueConfig4);
assertThat(loadedAttributeValues.getDossierAttributeList()
.get(0).getValue()).isEqualTo(valueConfig0);
assertThat(loadedAttributeValues.getDossierAttributeList()
.get(1).getValue()).isEqualTo(valueConfig1);
assertThat(loadedAttributeValues.getDossierAttributeList()
.get(2).getValue()).isEqualTo(valueConfig2);
assertThat(loadedAttributeValues.getDossierAttributeList()
.get(3).getValue()).isEqualTo(valueConfig3);
assertThat(loadedAttributeValues.getDossierAttributeList()
.get(4).getValue()).isEqualTo(valueConfig4);
String valueUpdate = "data:image/jpeg;base64,jkaf0000JJkasfaiiiiiHHHEkkkkki12Pd3Jaks222ggggB...";
imageAttribute.setValue(valueUpdate);
dossierAttributeClient.addOrUpdateDossierAttribute(dossier.getId(), imageAttribute);
loadedAttributeValues = dossierAttributeClient.getDossierAttributes(dossier.getId());
assertThat(loadedAttributeValues.getDossierAttributeList().get(4).getValue()).isEqualTo(valueUpdate);
assertThat(loadedAttributeValues.getDossierAttributeList()
.get(4).getValue()).isEqualTo(valueUpdate);
var e = assertThrows(FeignException.class,
() -> dossierAttributeClient.addOrUpdateDossierAttribute(dossier.getId(),
DossierAttribute.builder().dossierAttributeConfigId(configIds.get(1).getId()).dossierId(dossier.getId()).value("12345qwer").build()));
() -> dossierAttributeClient.addOrUpdateDossierAttribute(dossier.getId(),
DossierAttribute.builder()
.dossierAttributeConfigId(configIds.get(1).getId())
.dossierId(dossier.getId())
.value("12345qwer")
.build()));
assertEquals(400, e.status());
e = assertThrows(FeignException.class,
() -> dossierAttributeClient.addOrUpdateDossierAttribute(dossier.getId(),
DossierAttribute.builder().dossierAttributeConfigId(configIds.get(2).getId()).dossierId(dossier.getId()).value("07.02.2024").build()));
() -> dossierAttributeClient.addOrUpdateDossierAttribute(dossier.getId(),
DossierAttribute.builder()
.dossierAttributeConfigId(configIds.get(1).getId())
.dossierId(dossier.getId())
.value("")
.build()));
assertEquals(400, e.status());
e = assertThrows(FeignException.class,
() -> dossierAttributeClient.addOrUpdateDossierAttribute(dossier.getId(),
DossierAttribute.builder().dossierAttributeConfigId(configIds.get(2).getId()).dossierId(dossier.getId()).value("2021-17-31").build()));
() -> dossierAttributeClient.addOrUpdateDossierAttribute(dossier.getId(),
DossierAttribute.builder()
.dossierAttributeConfigId(configIds.get(2).getId())
.dossierId(dossier.getId())
.value("07.02.2024")
.build()));
assertEquals(400, e.status());
e = assertThrows(FeignException.class,
() -> dossierAttributeClient.addOrUpdateDossierAttribute(dossier.getId(),
DossierAttribute.builder().dossierAttributeConfigId(configIds.get(3).getId()).dossierId(dossier.getId()).value("data:image/gif;base64,test").build()));
() -> dossierAttributeClient.addOrUpdateDossierAttribute(dossier.getId(),
DossierAttribute.builder()
.dossierAttributeConfigId(configIds.get(2).getId())
.dossierId(dossier.getId())
.value("2021-17-31")
.build()));
assertEquals(400, e.status());
e = assertThrows(FeignException.class,
() -> dossierAttributeClient.addOrUpdateDossierAttribute(dossier.getId(),
DossierAttribute.builder()
.dossierAttributeConfigId(configIds.get(2).getId())
.dossierId(dossier.getId())
.value("")
.build()));
assertEquals(400, e.status());
e = assertThrows(FeignException.class,
() -> dossierAttributeClient.addOrUpdateDossierAttribute(dossier.getId(),
DossierAttribute.builder()
.dossierAttributeConfigId(configIds.get(3).getId())
.dossierId(dossier.getId())
.value("data:image/gif;base64,test")
.build()));
assertEquals(400, e.status());
List<DossierAttribute> invalidDossierAttributes1 = List.of(DossierAttribute.builder()
.dossierAttributeConfigId(configIds.get(0).getId())
.dossierId(dossier.getId())
.value(valueConfig0)
.build(), DossierAttribute.builder().dossierAttributeConfigId(configIds.get(1).getId()).dossierId(dossier.getId()).value("asdf12345").build());
.dossierAttributeConfigId(configIds.get(0).getId())
.dossierId(dossier.getId())
.value(valueConfig0)
.build(),
DossierAttribute.builder()
.dossierAttributeConfigId(configIds.get(1).getId())
.dossierId(dossier.getId())
.value("asdf12345")
.build());
e = assertThrows(FeignException.class, () -> dossierAttributeClient.setDossierAttributes(dossier.getId(), new DossierAttributes(invalidDossierAttributes1)));
assertEquals(400, e.status());
List<DossierAttribute> invalidDossierAttributes2 = List.of(DossierAttribute.builder()
.dossierAttributeConfigId(configIds.get(1).getId())
.dossierId(dossier.getId())
.value(valueConfig1)
.build(), DossierAttribute.builder().dossierAttributeConfigId(configIds.get(2).getId()).dossierId(dossier.getId()).value("20140705").build());
.dossierAttributeConfigId(configIds.get(1).getId())
.dossierId(dossier.getId())
.value(valueConfig1)
.build(),
DossierAttribute.builder()
.dossierAttributeConfigId(configIds.get(2).getId())
.dossierId(dossier.getId())
.value("20140705")
.build());
e = assertThrows(FeignException.class, () -> dossierAttributeClient.setDossierAttributes(dossier.getId(), new DossierAttributes(invalidDossierAttributes2)));
assertEquals(400, e.status());
List<DossierAttribute> invalidDossierAttributes3 = List.of(DossierAttribute.builder()
.dossierAttributeConfigId(configIds.get(1).getId())
.dossierId(dossier.getId())
.value(valueConfig1)
.build(), DossierAttribute.builder().dossierAttributeConfigId(configIds.get(3).getId()).dossierId(dossier.getId()).value("data:image/jpe;base64,test").build());
.dossierAttributeConfigId(configIds.get(1).getId())
.dossierId(dossier.getId())
.value(valueConfig1)
.build(),
DossierAttribute.builder()
.dossierAttributeConfigId(configIds.get(3).getId())
.dossierId(dossier.getId())
.value("data:image/jpe;base64,test")
.build());
e = assertThrows(FeignException.class, () -> dossierAttributeClient.setDossierAttributes(dossier.getId(), new DossierAttributes(invalidDossierAttributes3)));
assertEquals(400, e.status());
}
}

View File

@ -82,34 +82,42 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest {
assertThat(loadedConfig.getEncoding()).isEqualTo(ASCII_ENCODING);
List<FileAttributeConfig> configs = new ArrayList<>();
configs.add(FileAttributeConfig.builder().csvColumnHeader("Name").primaryAttribute(true).label("Name").build());
configs.add(FileAttributeConfig.builder().csvColumnHeader("Attribute A").primaryAttribute(true).label("Attribute A").build());
FileAttributeConfig attributeB = FileAttributeConfig.builder().csvColumnHeader("Attribute B").primaryAttribute(true).label("Attribute B").build();
configs.add(FileAttributeConfig.builder().csvColumnHeader("Name").primaryAttribute(true).label("Name")
.build());
configs.add(FileAttributeConfig.builder().csvColumnHeader("Attribute A").primaryAttribute(true).label("Attribute A")
.build());
FileAttributeConfig attributeB = FileAttributeConfig.builder().csvColumnHeader("Attribute B").primaryAttribute(true).label("Attribute B")
.build();
configs.add(attributeB);
configs.add(FileAttributeConfig.builder().csvColumnHeader("Attribute C").primaryAttribute(false).label("Attribute C").build());
configs.add(FileAttributeConfig.builder().csvColumnHeader("Attribute D").primaryAttribute(false).label("Attribute D").build());
configs.add(FileAttributeConfig.builder().csvColumnHeader("Attribute C").primaryAttribute(false).label("Attribute C")
.build());
configs.add(FileAttributeConfig.builder().csvColumnHeader("Attribute D").primaryAttribute(false).label("Attribute D")
.build());
fileAttributeConfigClient.setFileAttributesConfig(dossier.getDossierTemplateId(), new FileAttributesConfig("Name", ",", UTF_ENCODING, configs));
List<FileAttributeConfig> loadedConfigs = fileAttributeConfigClient.getFileAttributesConfiguration(dossier.getDossierTemplateId()).getFileAttributeConfigs();
assertThat(loadedConfigs.size()).isEqualTo(5);
FileAttributeConfig primaryAttribute = loadedConfigs.stream().filter(FileAttributeConfig::isPrimaryAttribute).findAny().get();
FileAttributeConfig primaryAttribute = loadedConfigs.stream()
.filter(FileAttributeConfig::isPrimaryAttribute)
.findAny()
.get();
assertThat(primaryAttribute.getLabel()).isEqualTo(attributeB.getLabel());
fileAttributeConfigClient.deleteFileAttribute(dossier.getDossierTemplateId(),
loadedConfigs.stream()
.filter(a -> a.getCsvColumnHeader().equalsIgnoreCase("Attribute C"))
.findAny()
.map(FileAttributeConfig::getId)
.orElseThrow(() -> new IllegalArgumentException("Should exists!")));
loadedConfigs.stream()
.filter(a -> a.getCsvColumnHeader().equalsIgnoreCase("Attribute C"))
.findAny()
.map(FileAttributeConfig::getId)
.orElseThrow(() -> new IllegalArgumentException("Should exists!")));
fileAttributeConfigClient.deleteFileAttributes(dossier.getDossierTemplateId(),
loadedConfigs.stream()
.filter(a -> a.getCsvColumnHeader().equalsIgnoreCase("Attribute D"))
.findAny()
.map(FileAttributeConfig::getId)
.stream()
.collect(Collectors.toList()));
loadedConfigs.stream()
.filter(a -> a.getCsvColumnHeader().equalsIgnoreCase("Attribute D"))
.findAny()
.map(FileAttributeConfig::getId)
.stream()
.collect(Collectors.toList()));
loadedConfigs = fileAttributeConfigClient.getFileAttributesConfiguration(dossier.getDossierTemplateId()).getFileAttributeConfigs();
assertThat(loadedConfigs.size()).isEqualTo(3);
@ -137,13 +145,15 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest {
Map<String, String> fileAttributes = fileClient.getFileStatus(dossier.getId(), file.getId()).getFileAttributes().getAttributeIdToValue();
assertThat(fileAttributes.size()).isEqualTo(1);
assertThat(fileAttributes.entrySet().iterator().next().getValue()).isEqualTo("Lorem Ipsum");
assertThat(fileAttributes.entrySet()
.iterator().next().getValue()).isEqualTo("Lorem Ipsum");
fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), new FileAttributes(Map.of(updated.getId(), " ")));
fileAttributes = fileClient.getFileStatus(dossier.getId(), file.getId()).getFileAttributes().getAttributeIdToValue();
assertThat(fileAttributes.size()).isEqualTo(1);
assertThat(fileAttributes.entrySet().iterator().next().getValue()).isNull();
assertThat(fileAttributes.entrySet()
.iterator().next().getValue()).isNull();
Map<String, String> fileAttributesWithNullValue = new HashMap<>();
fileAttributesWithNullValue.put(updated.getId(), null);
@ -151,21 +161,23 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest {
fileAttributes = fileClient.getFileStatus(dossier.getId(), file.getId()).getFileAttributes().getAttributeIdToValue();
assertThat(fileAttributes.size()).isEqualTo(1);
assertThat(fileAttributes.entrySet().iterator().next().getValue()).isNull();
assertThat(fileAttributes.entrySet()
.iterator().next().getValue()).isNull();
var mock = new MockMultipartFile("test.csv","test.csv","application/csv", IOUtils.toByteArray(new ClassPathResource("files/test.csv").getInputStream()));
var mock = new MockMultipartFile("test.csv", "test.csv", "application/csv", IOUtils.toByteArray(new ClassPathResource("files/test.csv").getInputStream()));
uploadClient.upload(mock, dossier.getId(), false);
fileAttributes = fileClient.getFileStatus(dossier.getId(), file.getId()).getFileAttributes().getAttributeIdToValue();
assertThat(fileAttributes.size()).isEqualTo(2);
fileAttributes.put(fileAttributes.keySet().iterator().next(), "changed");
fileAttributes.put(fileAttributes.keySet()
.iterator().next(), "changed");
fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), new FileAttributes(fileAttributes));
fileAttributes = fileClient.getFileStatus(dossier.getId(), file.getId()).getFileAttributes().getAttributeIdToValue();
assertThat(fileAttributes.size()).isEqualTo(2);
fileAttributeConfigClient.setFileAttributesConfig(dossier.getDossierTemplateId(), new FileAttributesConfig("Name",",","ASCII",new ArrayList<>()));
fileAttributeConfigClient.setFileAttributesConfig(dossier.getDossierTemplateId(), new FileAttributesConfig("Name", ",", "ASCII", new ArrayList<>()));
loadedConfigs = fileAttributeConfigClient.getFileAttributesConfiguration(dossier.getDossierTemplateId()).getFileAttributeConfigs();
assertThat(loadedConfigs.size()).isEqualTo(0);
@ -192,11 +204,16 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest {
assertThat(loadedConfig.getDelimiter()).isEqualTo(",");
List<FileAttributeConfig> configs = new ArrayList<>();
configs.add(FileAttributeConfig.builder().csvColumnHeader("Name").primaryAttribute(true).label("Name").build());
configs.add(FileAttributeConfig.builder().csvColumnHeader("Attribute A").primaryAttribute(false).label("Attribute A").build());
configs.add(FileAttributeConfig.builder().csvColumnHeader("Attribute B").primaryAttribute(false).label("Attribute B").build());
configs.add(FileAttributeConfig.builder().csvColumnHeader("Attribute C").primaryAttribute(false).label("Attribute C").build());
configs.add(FileAttributeConfig.builder().csvColumnHeader("Attribute D").primaryAttribute(false).label("Attribute D").build());
configs.add(FileAttributeConfig.builder().csvColumnHeader("Name").primaryAttribute(true).label("Name")
.build());
configs.add(FileAttributeConfig.builder().csvColumnHeader("Attribute A").primaryAttribute(false).label("Attribute A")
.build());
configs.add(FileAttributeConfig.builder().csvColumnHeader("Attribute B").primaryAttribute(false).label("Attribute B")
.build());
configs.add(FileAttributeConfig.builder().csvColumnHeader("Attribute C").primaryAttribute(false).label("Attribute C")
.build());
configs.add(FileAttributeConfig.builder().csvColumnHeader("Attribute D").primaryAttribute(false).label("Attribute D")
.build());
generalConfig.setFileAttributeConfigs(configs);
@ -209,7 +226,8 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest {
Map<String, String> fileAttributes = fileClient.getFileStatus(dossier.getId(), file.getId()).getFileAttributes().getAttributeIdToValue();
assertThat(fileAttributes.size()).isEqualTo(1);
assertThat(fileAttributes.entrySet().iterator().next().getValue()).isEqualTo("Lorem Ipsum");
assertThat(fileAttributes.entrySet()
.iterator().next().getValue()).isEqualTo("Lorem Ipsum");
// Delete file
fileManagementClient.deleteFile(dossier.getId(), file.getId());
@ -226,7 +244,6 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest {
}
@SneakyThrows
@Test
public void testSetFileAttributesInvalidUpdates() {
@ -244,9 +261,12 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest {
assertThat(loadedConfig.getDelimiter()).isEqualTo(",");
List<FileAttributeConfig> configs = new ArrayList<>();
configs.add(FileAttributeConfig.builder().csvColumnHeader("Date").primaryAttribute(true).label("Date").type(FileAttributeType.DATE).build());
configs.add(FileAttributeConfig.builder().csvColumnHeader("Number").primaryAttribute(true).label("Number").type(FileAttributeType.NUMBER).build());
configs.add(FileAttributeConfig.builder().csvColumnHeader("Text").primaryAttribute(true).label("Text").type(FileAttributeType.TEXT).build());
configs.add(FileAttributeConfig.builder().csvColumnHeader("Date").primaryAttribute(true).label("Date").type(FileAttributeType.DATE)
.build());
configs.add(FileAttributeConfig.builder().csvColumnHeader("Number").primaryAttribute(true).label("Number").type(FileAttributeType.NUMBER)
.build());
configs.add(FileAttributeConfig.builder().csvColumnHeader("Text").primaryAttribute(true).label("Text").type(FileAttributeType.TEXT)
.build());
generalConfig.setFileAttributeConfigs(configs);
@ -267,15 +287,26 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest {
assertThat(fileAttributes.get(loadedConfigs.get(1).getId())).isEqualTo("12345");
assertThat(fileAttributes.get(loadedConfigs.get(2).getId())).isEqualTo("Free Text 123");
var e = assertThrows(FeignException.class, () -> fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), new FileAttributes(Map.of(loadedConfigs.get(0).getId(), "random/text"))));
var e = assertThrows(FeignException.class,
() -> fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), new FileAttributes(Map.of(loadedConfigs.get(0).getId(), "random/text"))));
assertEquals(400, e.status());
assertThrows(FeignException.class, () -> fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), new FileAttributes(Map.of(loadedConfigs.get(0).getId(), "2023-12-32"))));
assertThrows(FeignException.class,
() -> fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), new FileAttributes(Map.of(loadedConfigs.get(0).getId(), "2023-12-32"))));
assertEquals(400, e.status());
assertThrows(FeignException.class, () -> fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), new FileAttributes(Map.of(loadedConfigs.get(0).getId(), "2023-02-30"))));
assertThrows(FeignException.class,
() -> fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), new FileAttributes(Map.of(loadedConfigs.get(0).getId(), "2023-02-30"))));
assertEquals(400, e.status());
assertThrows(FeignException.class, () -> fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), new FileAttributes(Map.of(loadedConfigs.get(1).getId(), "abc"))));
assertThrows(FeignException.class,
() -> fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), new FileAttributes(Map.of(loadedConfigs.get(0).getId(), ""))));
assertEquals(400, e.status());
assertThrows(FeignException.class, () -> fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), new FileAttributes(Map.of(loadedConfigs.get(1).getId(), "1-2-3-4"))));
assertThrows(FeignException.class,
() -> fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), new FileAttributes(Map.of(loadedConfigs.get(1).getId(), "abc"))));
assertEquals(400, e.status());
assertThrows(FeignException.class,
() -> fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), new FileAttributes(Map.of(loadedConfigs.get(1).getId(), "1-2-3-4"))));
assertEquals(400, e.status());
assertThrows(FeignException.class,
() -> fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), new FileAttributes(Map.of(loadedConfigs.get(1).getId(), ""))));
assertEquals(400, e.status());
}

View File

@ -6,5 +6,5 @@ public class DossierAttributeTypeFormats {
public static String DOSSIER_ATTRIBUTE_TYPE_IMAGE_REGEX = "data:image/(png|jpe?g);base64.*";
public static String DOSSIER_ATTRIBUTE_TYPE_NUMBER_REGEX = "[0-9]*";
public static String DOSSIER_ATTRIBUTE_TYPE_NUMBER_REGEX = "[0-9]+";
}

View File

@ -4,5 +4,5 @@ public class FileAttributeTypeFormats {
public static String FILE_ATTRIBUTE_TYPE_DATE_FORMAT = "yyyy-MM-dd";
public static String FILE_ATTRIBUTE_TYPE_NUMBER_REGEX = "[0-9]*";
public static String FILE_ATTRIBUTE_TYPE_NUMBER_REGEX = "[0-9]+";
}