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

Merge branch 'master' into OZG-4653-E2E-Tests-stabilisieren

parents f3de11a4 d6d1221b
No related branches found
No related tags found
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;
......@@ -24,19 +26,24 @@ public class DateConverter {
public Optional<XMLGregorianCalendar> convertGermanFormatToISO(String dateStr) {
try {
if (nonNull(dateStr)) {
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);
return Optional.empty();
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() {
......
......@@ -51,9 +51,10 @@ class ExportService {
var abgabe = AbgabeCreator.createAbgabeCreator()
.withKopf(exportVorgangService.createKopf(vorgangWithEingang))
.withVorgang(exportVorgangService.createVorgangType(vorgangWithEingang))
.withDokumentTypes(exportFileService.createDokumentTypes(ozgFiles, vorgangWithEingang.getEingang().getHeader().getFormEngineName()))
.withDokumentTypes(
exportFileService.createDokumentTypes(ozgFiles.stream(), vorgangWithEingang.getEingang().getHeader().getFormEngineName()))
.create();
return ExportData.builder().abgabe(abgabe).exportFilename(buildXmlFilename(filenameId)).exportFiles(ozgFiles).build();
return ExportData.builder().abgabe(abgabe).exportFilename(buildXmlFilename(filenameId)).exportFiles(ozgFiles.stream()).build();
}
String buildXmlFilename(String filenameId) {
......@@ -93,7 +94,7 @@ class ExportService {
exportFileService.writeOzgFile(ozgFile.getId(), zipOutputStream);
zipOutputStream.closeEntry();
} catch (IOException e) {
throw new RuntimeException(e);
throw new TechnicalException("Cannot add file to ZIP.", e);
}
}
......@@ -101,7 +102,7 @@ class ExportService {
try (var fileInputStream = new FileInputStream(file)) {
fileInputStream.transferTo(outputStream);
} catch (Exception e) {
throw new TechnicalException("Error writting XDomea zip file to output stream", e);
throw new TechnicalException("Error writing XDomea zip file to output stream", e);
}
}
}
package de.ozgcloud.alfa.file;
import java.io.OutputStream;
import java.util.List;
import java.util.function.Predicate;
import java.util.stream.Stream;
......@@ -17,7 +18,7 @@ import de.xoev.xdomea.DokumentType;
@Service
public class ExportFileService {
private static final Predicate<OzgFile> IS_PDF_FILE = file -> file.getContentType().equals(MediaType.APPLICATION_PDF_VALUE);
private static final Predicate<OzgFile> IS_PDF_FILE = file -> MediaType.APPLICATION_PDF_VALUE.equals(file.getContentType());
@Autowired
private OzgFileService ozgFileService;
......@@ -28,10 +29,10 @@ public class ExportFileService {
@Autowired
private DokumentTypeCreator dokumentTypeCreator;
public Stream<OzgFile> getAllPdfs(String eingangId) {
public List<OzgFile> getAllPdfs(String eingangId) {
var representations = ozgFileService.getRepresentationsByEingang(eingangId);
var attachments = ozgFileService.getAttachmentsByEingang(eingangId);
return Stream.concat(representations, attachments).filter(IS_PDF_FILE);
return Stream.concat(representations, attachments).filter(IS_PDF_FILE).toList();
}
public Stream<DokumentType> createDokumentTypes(Stream<OzgFile> ozgFileStream, String formEngineName) {
......
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;
}
......
......@@ -9,6 +9,7 @@ import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.List;
import java.util.UUID;
import java.util.stream.Stream;
import java.util.zip.ZipEntry;
......@@ -128,7 +129,9 @@ class ExportServiceTest {
when(exportVorgangService.getVorgang(any())).thenReturn(vorgang);
when(exportVorgangService.createVorgangType(any())).thenReturn(vorgangType);
when(exportVorgangService.createKopf(any())).thenReturn(kopfType);
when(exportFileService.getAllPdfs(any())).thenReturn(ozgFiles);
List<OzgFile> ozgFileList = mock(List.class);
when(ozgFileList.stream()).thenReturn(ozgFiles);
when(exportFileService.getAllPdfs(any())).thenReturn(ozgFileList);
when(exportFileService.createDokumentTypes(any(), any())).thenReturn(dokumentTypes);
doReturn(FILE_NAME).when(service).buildXmlFilename(any());
abgabeCreatorStatic = mockStatic(AbgabeCreator.class);
......
......@@ -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