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; package de.ozgcloud.alfa.common;
import static java.util.Objects.*;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.ZonedDateTime; import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
...@@ -24,19 +26,24 @@ public class DateConverter { ...@@ -24,19 +26,24 @@ public class DateConverter {
public Optional<XMLGregorianCalendar> convertGermanFormatToISO(String dateStr) { public Optional<XMLGregorianCalendar> convertGermanFormatToISO(String dateStr) {
try { try {
if (nonNull(dateStr)) {
return Optional.of(createDatatypeFactory().newXMLGregorianCalendar(LocalDate.parse(dateStr, DATE_TIME_FORMATTER).toString())); return Optional.of(createDatatypeFactory().newXMLGregorianCalendar(LocalDate.parse(dateStr, DATE_TIME_FORMATTER).toString()));
}
} catch (Exception e) { } 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();
} }
return Optional.empty();
} }
public XMLGregorianCalendar toXmlGregorianCalendar(ZonedDateTime date) { public XMLGregorianCalendar toXmlGregorianCalendar(ZonedDateTime date) {
try { try {
if (nonNull(date)) {
return createDatatypeFactory().newXMLGregorianCalendar(GregorianCalendar.from(date)); return createDatatypeFactory().newXMLGregorianCalendar(GregorianCalendar.from(date));
}
} catch (Exception e) { } 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() { DatatypeFactory createDatatypeFactory() {
......
...@@ -51,9 +51,10 @@ class ExportService { ...@@ -51,9 +51,10 @@ class ExportService {
var abgabe = AbgabeCreator.createAbgabeCreator() var abgabe = AbgabeCreator.createAbgabeCreator()
.withKopf(exportVorgangService.createKopf(vorgangWithEingang)) .withKopf(exportVorgangService.createKopf(vorgangWithEingang))
.withVorgang(exportVorgangService.createVorgangType(vorgangWithEingang)) .withVorgang(exportVorgangService.createVorgangType(vorgangWithEingang))
.withDokumentTypes(exportFileService.createDokumentTypes(ozgFiles, vorgangWithEingang.getEingang().getHeader().getFormEngineName())) .withDokumentTypes(
exportFileService.createDokumentTypes(ozgFiles.stream(), vorgangWithEingang.getEingang().getHeader().getFormEngineName()))
.create(); .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) { String buildXmlFilename(String filenameId) {
...@@ -93,7 +94,7 @@ class ExportService { ...@@ -93,7 +94,7 @@ class ExportService {
exportFileService.writeOzgFile(ozgFile.getId(), zipOutputStream); exportFileService.writeOzgFile(ozgFile.getId(), zipOutputStream);
zipOutputStream.closeEntry(); zipOutputStream.closeEntry();
} catch (IOException e) { } catch (IOException e) {
throw new RuntimeException(e); throw new TechnicalException("Cannot add file to ZIP.", e);
} }
} }
...@@ -101,7 +102,7 @@ class ExportService { ...@@ -101,7 +102,7 @@ class ExportService {
try (var fileInputStream = new FileInputStream(file)) { try (var fileInputStream = new FileInputStream(file)) {
fileInputStream.transferTo(outputStream); fileInputStream.transferTo(outputStream);
} catch (Exception e) { } 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; package de.ozgcloud.alfa.file;
import java.io.OutputStream; import java.io.OutputStream;
import java.util.List;
import java.util.function.Predicate; import java.util.function.Predicate;
import java.util.stream.Stream; import java.util.stream.Stream;
...@@ -17,7 +18,7 @@ import de.xoev.xdomea.DokumentType; ...@@ -17,7 +18,7 @@ import de.xoev.xdomea.DokumentType;
@Service @Service
public class ExportFileService { 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 @Autowired
private OzgFileService ozgFileService; private OzgFileService ozgFileService;
...@@ -28,10 +29,10 @@ public class ExportFileService { ...@@ -28,10 +29,10 @@ public class ExportFileService {
@Autowired @Autowired
private DokumentTypeCreator dokumentTypeCreator; private DokumentTypeCreator dokumentTypeCreator;
public Stream<OzgFile> getAllPdfs(String eingangId) { public List<OzgFile> getAllPdfs(String eingangId) {
var representations = ozgFileService.getRepresentationsByEingang(eingangId); var representations = ozgFileService.getRepresentationsByEingang(eingangId);
var attachments = ozgFileService.getAttachmentsByEingang(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) { public Stream<DokumentType> createDokumentTypes(Stream<OzgFile> ozgFileStream, String formEngineName) {
......
package de.ozgcloud.alfa.vorgang; package de.ozgcloud.alfa.vorgang;
import static java.util.Objects.*;
import java.time.ZonedDateTime; import java.time.ZonedDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
...@@ -77,9 +79,11 @@ class FormDataMapper { ...@@ -77,9 +79,11 @@ class FormDataMapper {
AntragsdatenItemType buildSingleValueField(String name, Object value) { AntragsdatenItemType buildSingleValueField(String name, Object value) {
var singleValue = new AntragsdatenSingleValueFieldType(); var singleValue = new AntragsdatenSingleValueFieldType();
singleValue.setName(name); singleValue.setName(name);
if (nonNull(value)) {
var datatype = datatypeMapper.from(value); var datatype = datatypeMapper.from(value);
singleValue.setType(datatype); singleValue.setType(datatype);
singleValue.setValue(formatValue(datatype, value)); singleValue.setValue(formatValue(datatype, value));
}
return singleValue; return singleValue;
} }
......
...@@ -9,6 +9,7 @@ import java.io.ByteArrayOutputStream; ...@@ -9,6 +9,7 @@ import java.io.ByteArrayOutputStream;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.util.List;
import java.util.UUID; import java.util.UUID;
import java.util.stream.Stream; import java.util.stream.Stream;
import java.util.zip.ZipEntry; import java.util.zip.ZipEntry;
...@@ -128,7 +129,9 @@ class ExportServiceTest { ...@@ -128,7 +129,9 @@ class ExportServiceTest {
when(exportVorgangService.getVorgang(any())).thenReturn(vorgang); when(exportVorgangService.getVorgang(any())).thenReturn(vorgang);
when(exportVorgangService.createVorgangType(any())).thenReturn(vorgangType); when(exportVorgangService.createVorgangType(any())).thenReturn(vorgangType);
when(exportVorgangService.createKopf(any())).thenReturn(kopfType); 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); when(exportFileService.createDokumentTypes(any(), any())).thenReturn(dokumentTypes);
doReturn(FILE_NAME).when(service).buildXmlFilename(any()); doReturn(FILE_NAME).when(service).buildXmlFilename(any());
abgabeCreatorStatic = mockStatic(AbgabeCreator.class); abgabeCreatorStatic = mockStatic(AbgabeCreator.class);
......
...@@ -242,6 +242,14 @@ class FormDataMapperTest { ...@@ -242,6 +242,14 @@ class FormDataMapperTest {
assertThat(antragsdatenSingleValueFieldType.getValue()).isEqualTo(FORMDATA_VALUE); assertThat(antragsdatenSingleValueFieldType.getValue()).isEqualTo(FORMDATA_VALUE);
} }
@Test
void shouldNotSetIfValueIsNull() {
formDataMapper.buildSingleValueField(NAME, null);
verify(formDataMapper, never()).formatValue(DatatypeType.STRING, null);
}
@Test @Test
void shouldCallFormatValue() { void shouldCallFormatValue() {
when(datatypeMapper.from(any())).thenReturn(DatatypeType.STRING); when(datatypeMapper.from(any())).thenReturn(DatatypeType.STRING);
...@@ -270,5 +278,12 @@ class FormDataMapperTest { ...@@ -270,5 +278,12 @@ class FormDataMapperTest {
verify(dateConverter).toXmlGregorianCalendar(dateTime); 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