Skip to content
Snippets Groups Projects
Commit 83e9fc03 authored by OZGCloud's avatar OZGCloud
Browse files

OZG-4375 handle null values when mapping vorgang

parent 04941406
Branches
Tags
No related merge requests found
package de.ozgcloud.alfa.common;
import static java.util.Objects.*;
import java.time.LocalDate;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
......@@ -26,17 +28,20 @@ public class DateConverter {
try {
return Optional.of(createDatatypeFactory().newXMLGregorianCalendar(LocalDate.parse(dateStr, DATE_TIME_FORMATTER).toString()));
} catch (Exception e) {
LOG.error("Date '{}' cannot be converted to ISO format.", dateStr, e);
LOG.warn("Date '{}' cannot be converted to ISO format.", dateStr, e);
return Optional.empty();
}
}
public XMLGregorianCalendar toXmlGregorianCalendar(ZonedDateTime date) {
try {
if (nonNull(date)) {
return createDatatypeFactory().newXMLGregorianCalendar(GregorianCalendar.from(date));
}
} catch (Exception e) {
throw new TechnicalException("Date '%s' cannot be converted to ISO format.".formatted(date), e);
LOG.warn("Date '{}' cannot be converted to ISO format.", date, e);
}
return null;
}
DatatypeFactory createDatatypeFactory() {
......
package de.ozgcloud.alfa.vorgang;
import static java.util.Objects.*;
import java.time.ZonedDateTime;
import java.util.ArrayList;
import java.util.Collection;
......@@ -77,9 +79,11 @@ class FormDataMapper {
AntragsdatenItemType buildSingleValueField(String name, Object value) {
var singleValue = new AntragsdatenSingleValueFieldType();
singleValue.setName(name);
if (nonNull(value)) {
var datatype = datatypeMapper.from(value);
singleValue.setType(datatype);
singleValue.setValue(formatValue(datatype, value));
}
return singleValue;
}
......
......@@ -242,6 +242,14 @@ class FormDataMapperTest {
assertThat(antragsdatenSingleValueFieldType.getValue()).isEqualTo(FORMDATA_VALUE);
}
@Test
void shouldNotSetIfValueIsNull() {
formDataMapper.buildSingleValueField(NAME, null);
verify(formDataMapper, never()).formatValue(DatatypeType.STRING, null);
}
@Test
void shouldCallFormatValue() {
when(datatypeMapper.from(any())).thenReturn(DatatypeType.STRING);
......@@ -270,5 +278,12 @@ class FormDataMapperTest {
verify(dateConverter).toXmlGregorianCalendar(dateTime);
}
@Test
void shouldFormatNull() {
var value = formDataMapper.formatValue(DatatypeType.STRING, null);
assertThat(value).isEqualTo("null");
}
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment