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

OZG-4238 OZG-4359 implement null safety for Eingangsdaten

parent 875b3354
No related branches found
No related tags found
No related merge requests found
package de.ozgcloud.alfa.export; package de.ozgcloud.alfa.export;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Optional;
import java.util.stream.Stream; import java.util.stream.Stream;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
...@@ -9,6 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -9,6 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import de.ozgcloud.alfa.common.file.OzgFile; import de.ozgcloud.alfa.common.file.OzgFile;
import de.ozgcloud.alfa.vorgang.Eingang;
import de.ozgcloud.alfa.vorgang.VorgangWithEingang; import de.ozgcloud.alfa.vorgang.VorgangWithEingang;
import de.xoev.xdomea.AllgemeineMetadatenType; import de.xoev.xdomea.AllgemeineMetadatenType;
import de.xoev.xdomea.DokumentType; import de.xoev.xdomea.DokumentType;
...@@ -30,7 +33,8 @@ class DokumentTypeCreator { ...@@ -30,7 +33,8 @@ class DokumentTypeCreator {
private VersionTypeCreator versionTypeCreator; private VersionTypeCreator versionTypeCreator;
public Stream<DokumentType> createDokumentTypen(VorgangWithEingang vorgang) { public Stream<DokumentType> createDokumentTypen(VorgangWithEingang vorgang) {
var ozgFiles = exportFileService.getAllPdfs(vorgang.getEingang().getId()).toList(); var ozgFiles = Optional.ofNullable(vorgang.getEingang()).map(Eingang::getId).map(exportFileService::getAllPdfs).map(Stream::toList)
.orElse(Collections.emptyList());
List<DokumentType> dokumenten = new ArrayList<>(ozgFiles.size()); List<DokumentType> dokumenten = new ArrayList<>(ozgFiles.size());
for (var i = 0; i < ozgFiles.size(); i++) { for (var i = 0; i < ozgFiles.size(); i++) {
dokumenten.add(createDokumentType(i + 1, vorgang, ozgFiles.get(i))); dokumenten.add(createDokumentType(i + 1, vorgang, ozgFiles.get(i)));
......
package de.ozgcloud.alfa.export; package de.ozgcloud.alfa.export;
import static java.util.Optional.*;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.List; import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import de.ozgcloud.alfa.vorgang.VorgangWithEingang; import de.ozgcloud.alfa.vorgang.VorgangWithEingang;
...@@ -24,13 +27,14 @@ class FeldGruppeTypeCreator { ...@@ -24,13 +27,14 @@ class FeldGruppeTypeCreator {
} }
List<FeldType> createFeldType(VorgangWithEingang vorgang) { List<FeldType> createFeldType(VorgangWithEingang vorgang) {
var antragsteller = ofNullable(vorgang.getEingang()).flatMap(eingang -> ofNullable(eingang.getAntragsteller()));
return List.of( return List.of(
ExportFelder.LEIKA_ID.createFeld(), ExportFelder.LEIKA_ID.createFeld(),
ExportFelder.DATUM_ANTRAGSEINGANG.createFeld(DateTimeFormatter.ISO_DATE_TIME.format(vorgang.getCreatedAt())), ExportFelder.DATUM_ANTRAGSEINGANG.createFeld(DateTimeFormatter.ISO_DATE_TIME.format(vorgang.getCreatedAt())),
ExportFelder.NAME.createFeld(vorgang.getEingang().getAntragsteller().getNachname()), ExportFelder.NAME.createFeld(antragsteller.flatMap(a -> ofNullable(a.getNachname())).orElse(StringUtils.EMPTY)),
ExportFelder.VORNAME.createFeld(vorgang.getEingang().getAntragsteller().getVorname()), ExportFelder.VORNAME.createFeld(antragsteller.flatMap(a -> ofNullable(a.getVorname())).orElse(StringUtils.EMPTY)),
ExportFelder.GEBURTSDATUM.createFeld(vorgang.getEingang().getAntragsteller().getGeburtsdatum()), ExportFelder.GEBURTSDATUM.createFeld(antragsteller.flatMap(a -> ofNullable(a.getGeburtsdatum())).orElse(StringUtils.EMPTY)),
ExportFelder.PLZ.createFeld(vorgang.getEingang().getAntragsteller().getPlz())); ExportFelder.PLZ.createFeld(antragsteller.flatMap(a -> ofNullable(a.getPlz())).orElse(StringUtils.EMPTY)));
} }
} }
package de.ozgcloud.alfa.export; package de.ozgcloud.alfa.export;
import static java.util.Optional.*;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -17,7 +20,9 @@ class PrimaerdokumentTypeCreator { ...@@ -17,7 +20,9 @@ class PrimaerdokumentTypeCreator {
var primaerdokument = new PrimaerdokumentType(); var primaerdokument = new PrimaerdokumentType();
primaerdokument.setDateiname(createDateiname(ozgFile)); primaerdokument.setDateiname(createDateiname(ozgFile));
primaerdokument.setDateinameOriginal(ozgFile.getName()); primaerdokument.setDateinameOriginal(ozgFile.getName());
primaerdokument.setErsteller(vorgang.getEingang().getHeader().getFormEngineName()); var formEngineName = ofNullable(vorgang.getEingang()).flatMap(
eingang -> ofNullable(eingang.getHeader()).flatMap(header -> ofNullable(header.getFormEngineName()))).orElse(StringUtils.EMPTY);
primaerdokument.setErsteller(formEngineName);
return primaerdokument; return primaerdokument;
} }
......
...@@ -45,13 +45,10 @@ class DokumentTypeCreatorTest { ...@@ -45,13 +45,10 @@ class DokumentTypeCreatorTest {
private final VorgangWithEingang vorgang = VorgangWithEingangTestFactory.create(); private final VorgangWithEingang vorgang = VorgangWithEingangTestFactory.create();
private final OzgFile ozgFile = OzgFileTestFactory.create(); private final OzgFile ozgFile = OzgFileTestFactory.create();
@BeforeEach
void init() {
when(exportFileService.getAllPdfs(EingangTestFactory.ID)).thenReturn(Stream.of(ozgFile));
}
@Test @Test
void shouldLoadlAllPdfs() { void shouldLoadlAllPdfs() {
mockExportFileService();
creator.createDokumentTypen(vorgang); creator.createDokumentTypen(vorgang);
verify(exportFileService).getAllPdfs(EingangTestFactory.ID); verify(exportFileService).getAllPdfs(EingangTestFactory.ID);
...@@ -59,11 +56,31 @@ class DokumentTypeCreatorTest { ...@@ -59,11 +56,31 @@ class DokumentTypeCreatorTest {
@Test @Test
void shouldCreateDokumentType() { void shouldCreateDokumentType() {
mockExportFileService();
creator.createDokumentTypen(vorgang); creator.createDokumentTypen(vorgang);
verify(creator).createDokumentType(1, vorgang, ozgFile); verify(creator).createDokumentType(1, vorgang, ozgFile);
} }
@Test
void shouldNotLoadAnyPdf() {
creator.createDokumentTypen(VorgangWithEingang.builder().eingang(null).build());
verify(exportFileService, never()).getAllPdfs(EingangTestFactory.ID);
}
@Test
void shouldReturnEmptyStreamIfEingangNull() {
var result = creator.createDokumentTypen(VorgangWithEingang.builder().eingang(null).build());
assertThat(result).isEmpty();
}
private void mockExportFileService() {
when(exportFileService.getAllPdfs(EingangTestFactory.ID)).thenReturn(Stream.of(ozgFile));
}
} }
@Nested @Nested
......
...@@ -3,12 +3,14 @@ package de.ozgcloud.alfa.export; ...@@ -3,12 +3,14 @@ package de.ozgcloud.alfa.export;
import static org.assertj.core.api.Assertions.*; import static org.assertj.core.api.Assertions.*;
import static org.mockito.Mockito.*; import static org.mockito.Mockito.*;
import org.apache.commons.lang3.StringUtils;
import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.mockito.Spy; import org.mockito.Spy;
import de.ozgcloud.alfa.vorgang.AntragstellerTestFactory; import de.ozgcloud.alfa.vorgang.AntragstellerTestFactory;
import de.ozgcloud.alfa.vorgang.EingangTestFactory;
import de.ozgcloud.alfa.vorgang.VorgangHeaderTestFactory; import de.ozgcloud.alfa.vorgang.VorgangHeaderTestFactory;
import de.ozgcloud.alfa.vorgang.VorgangWithEingang; import de.ozgcloud.alfa.vorgang.VorgangWithEingang;
import de.ozgcloud.alfa.vorgang.VorgangWithEingangTestFactory; import de.ozgcloud.alfa.vorgang.VorgangWithEingangTestFactory;
...@@ -179,32 +181,59 @@ class FeldGruppeTypeCreatorTest { ...@@ -179,32 +181,59 @@ class FeldGruppeTypeCreatorTest {
@Test @Test
void shouldHaveName() { void shouldHaveName() {
var mapped = create(); var mapped = create(vorgang);
assertThat(mapped).extracting(FeldType::getName).isEqualTo("Name"); assertThat(mapped).extracting(FeldType::getName).isEqualTo("Name");
} }
@Test @Test
void shouldNotHaveBeschreibung() { void shouldNotHaveBeschreibung() {
var mapped = create(); var mapped = create(vorgang);
assertThat(mapped).extracting(FeldType::getBeschreibung).isNull(); assertThat(mapped).extracting(FeldType::getBeschreibung).isNull();
} }
@Test @Test
void shouldHaveWert() { void shouldHaveWert() {
var mapped = create(); var mapped = create(vorgang);
assertThat(mapped).extracting(FeldType::getWert).isEqualTo(AntragstellerTestFactory.NACHNAME); assertThat(mapped).extracting(FeldType::getWert).isEqualTo(AntragstellerTestFactory.NACHNAME);
} }
@Test
void shouldBeEmptyStringForNullEingang() {
var mapped = create(VorgangWithEingangTestFactory.createBuilder().eingang(null).build());
assertThat(mapped).extracting(FeldType::getWert).isEqualTo(StringUtils.EMPTY);
}
@Test
void shouldBeEmptyStringForNullAntragsteller() {
var mapped = create(
VorgangWithEingangTestFactory.createBuilder().eingang(EingangTestFactory.createBuilder().antragsteller(null).build())
.build());
assertThat(mapped).extracting(FeldType::getWert).isEqualTo(StringUtils.EMPTY);
}
@Test
void shouldBeEmptyStringForNullNachname() {
var mapped = create(
VorgangWithEingangTestFactory.createBuilder().eingang(
EingangTestFactory.createBuilder().antragsteller(AntragstellerTestFactory.createBuilder().nachname(null).build())
.build())
.build());
assertThat(mapped).extracting(FeldType::getWert).isEqualTo(StringUtils.EMPTY);
}
@DisplayName("DatentypCode") @DisplayName("DatentypCode")
@Nested @Nested
class TestDatentypCode { class TestDatentypCode {
@Test @Test
void shouldHaveCode() { void shouldHaveCode() {
var mapped = create(); var mapped = create(vorgang);
assertThat(mapped).extracting(FeldType::getDatentyp).extracting(DatentypCodeType::getCode) assertThat(mapped).extracting(FeldType::getDatentyp).extracting(DatentypCodeType::getCode)
.isEqualTo(DatentypCode.STRING.getCode()); .isEqualTo(DatentypCode.STRING.getCode());
...@@ -212,7 +241,7 @@ class FeldGruppeTypeCreatorTest { ...@@ -212,7 +241,7 @@ class FeldGruppeTypeCreatorTest {
@Test @Test
void shouldHaveListURI() { void shouldHaveListURI() {
var mapped = create(); var mapped = create(vorgang);
assertThat(mapped).extracting(FeldType::getDatentyp).extracting(DatentypCodeType::getListURI) assertThat(mapped).extracting(FeldType::getDatentyp).extracting(DatentypCodeType::getListURI)
.isEqualTo("urn:xoev-de:xdomea:codeliste:datentyp"); .isEqualTo("urn:xoev-de:xdomea:codeliste:datentyp");
...@@ -220,14 +249,14 @@ class FeldGruppeTypeCreatorTest { ...@@ -220,14 +249,14 @@ class FeldGruppeTypeCreatorTest {
@Test @Test
void shouldHaveListVersionID() { void shouldHaveListVersionID() {
var mapped = create(); var mapped = create(vorgang);
assertThat(mapped).extracting(FeldType::getDatentyp).extracting(DatentypCodeType::getListVersionID).isEqualTo("1.1"); assertThat(mapped).extracting(FeldType::getDatentyp).extracting(DatentypCodeType::getListVersionID).isEqualTo("1.1");
} }
} }
private FeldType create() { private FeldType create(VorgangWithEingang vorgang) {
return creator.createFeldType(vorgang).stream() return creator.createFeldType(vorgang).stream()
.filter(feldType -> feldType.getName().equals(ExportFelder.NAME.getName())) .filter(feldType -> feldType.getName().equals(ExportFelder.NAME.getName()))
.toList().get(0); .toList().get(0);
...@@ -240,32 +269,59 @@ class FeldGruppeTypeCreatorTest { ...@@ -240,32 +269,59 @@ class FeldGruppeTypeCreatorTest {
@Test @Test
void shouldHaveName() { void shouldHaveName() {
var mapped = create(); var mapped = create(vorgang);
assertThat(mapped).extracting(FeldType::getName).isEqualTo("Vorname"); assertThat(mapped).extracting(FeldType::getName).isEqualTo("Vorname");
} }
@Test @Test
void shouldHaveNotHaveBeschreibung() { void shouldHaveNotHaveBeschreibung() {
var mapped = create(); var mapped = create(vorgang);
assertThat(mapped).extracting(FeldType::getBeschreibung).isNull(); assertThat(mapped).extracting(FeldType::getBeschreibung).isNull();
} }
@Test @Test
void shouldHaveWert() { void shouldHaveWert() {
var mapped = create(); var mapped = create(vorgang);
assertThat(mapped).extracting(FeldType::getWert).isEqualTo(AntragstellerTestFactory.VORNAME); assertThat(mapped).extracting(FeldType::getWert).isEqualTo(AntragstellerTestFactory.VORNAME);
} }
@Test
void shouldBeEmptyStringForNullEingang() {
var mapped = create(VorgangWithEingangTestFactory.createBuilder().eingang(null).build());
assertThat(mapped).extracting(FeldType::getWert).isEqualTo(StringUtils.EMPTY);
}
@Test
void shouldBeEmptyStringForNullAntragsteller() {
var mapped = create(
VorgangWithEingangTestFactory.createBuilder().eingang(EingangTestFactory.createBuilder().antragsteller(null).build())
.build());
assertThat(mapped).extracting(FeldType::getWert).isEqualTo(StringUtils.EMPTY);
}
@Test
void shouldBeEmptyStringForNullVorname() {
var mapped = create(
VorgangWithEingangTestFactory.createBuilder().eingang(
EingangTestFactory.createBuilder().antragsteller(AntragstellerTestFactory.createBuilder().vorname(null).build())
.build())
.build());
assertThat(mapped).extracting(FeldType::getWert).isEqualTo(StringUtils.EMPTY);
}
@DisplayName("DatentypCode") @DisplayName("DatentypCode")
@Nested @Nested
class TestDatentypCode { class TestDatentypCode {
@Test @Test
void shouldHaveCode() { void shouldHaveCode() {
var mapped = create(); var mapped = create(vorgang);
assertThat(mapped).extracting(FeldType::getDatentyp).extracting(DatentypCodeType::getCode) assertThat(mapped).extracting(FeldType::getDatentyp).extracting(DatentypCodeType::getCode)
.isEqualTo(DatentypCode.STRING.getCode()); .isEqualTo(DatentypCode.STRING.getCode());
...@@ -273,7 +329,7 @@ class FeldGruppeTypeCreatorTest { ...@@ -273,7 +329,7 @@ class FeldGruppeTypeCreatorTest {
@Test @Test
void shouldHaveListURI() { void shouldHaveListURI() {
var mapped = create(); var mapped = create(vorgang);
assertThat(mapped).extracting(FeldType::getDatentyp).extracting(DatentypCodeType::getListURI) assertThat(mapped).extracting(FeldType::getDatentyp).extracting(DatentypCodeType::getListURI)
.isEqualTo("urn:xoev-de:xdomea:codeliste:datentyp"); .isEqualTo("urn:xoev-de:xdomea:codeliste:datentyp");
...@@ -281,14 +337,14 @@ class FeldGruppeTypeCreatorTest { ...@@ -281,14 +337,14 @@ class FeldGruppeTypeCreatorTest {
@Test @Test
void shouldHaveListVersionID() { void shouldHaveListVersionID() {
var mapped = create(); var mapped = create(vorgang);
assertThat(mapped).extracting(FeldType::getDatentyp).extracting(DatentypCodeType::getListVersionID).isEqualTo("1.1"); assertThat(mapped).extracting(FeldType::getDatentyp).extracting(DatentypCodeType::getListVersionID).isEqualTo("1.1");
} }
} }
private FeldType create() { private FeldType create(VorgangWithEingang vorgang) {
return creator.createFeldType(vorgang).stream() return creator.createFeldType(vorgang).stream()
.filter(feldType -> feldType.getName().equals(ExportFelder.VORNAME.getName())) .filter(feldType -> feldType.getName().equals(ExportFelder.VORNAME.getName()))
.toList().get(0); .toList().get(0);
...@@ -301,39 +357,66 @@ class FeldGruppeTypeCreatorTest { ...@@ -301,39 +357,66 @@ class FeldGruppeTypeCreatorTest {
@Test @Test
void shouldHaveName() { void shouldHaveName() {
var mapped = create(); var mapped = create(vorgang);
assertThat(mapped).extracting(FeldType::getName).isEqualTo("Geburtsdatum"); assertThat(mapped).extracting(FeldType::getName).isEqualTo("Geburtsdatum");
} }
@Test @Test
void shouldHaveNotHaveBeschreibung() { void shouldHaveNotHaveBeschreibung() {
var mapped = create(); var mapped = create(vorgang);
assertThat(mapped).extracting(FeldType::getBeschreibung).isNull(); assertThat(mapped).extracting(FeldType::getBeschreibung).isNull();
} }
@Test @Test
void shouldHaveWert() { void shouldHaveWert() {
var mapped = create(); var mapped = create(vorgang);
assertThat(mapped).extracting(FeldType::getWert).isEqualTo(AntragstellerTestFactory.GEBURTSDATUM_STR); assertThat(mapped).extracting(FeldType::getWert).isEqualTo(AntragstellerTestFactory.GEBURTSDATUM_STR);
} }
@Test
void shouldBeEmptyStringForNullEingang() {
var mapped = create(VorgangWithEingangTestFactory.createBuilder().eingang(null).build());
assertThat(mapped).extracting(FeldType::getWert).isEqualTo(StringUtils.EMPTY);
}
@Test
void shouldBeEmptyStringForNullAntragsteller() {
var mapped = create(
VorgangWithEingangTestFactory.createBuilder().eingang(EingangTestFactory.createBuilder().antragsteller(null).build())
.build());
assertThat(mapped).extracting(FeldType::getWert).isEqualTo(StringUtils.EMPTY);
}
@Test
void shouldBeEmptyStringForNullGeburtsdatum() {
var mapped = create(
VorgangWithEingangTestFactory.createBuilder().eingang(
EingangTestFactory.createBuilder().antragsteller(AntragstellerTestFactory.createBuilder().geburtsdatum(null).build())
.build())
.build());
assertThat(mapped).extracting(FeldType::getWert).isEqualTo(StringUtils.EMPTY);
}
@DisplayName("DatentypCode") @DisplayName("DatentypCode")
@Nested @Nested
class TestDatentypCode { class TestDatentypCode {
@Test @Test
void shouldHaveCode() { void shouldHaveCode() {
var mapped = create(); var mapped = create(vorgang);
assertThat(mapped).extracting(FeldType::getDatentyp).extracting(DatentypCodeType::getCode).isEqualTo(DatentypCode.DATE.getCode()); assertThat(mapped).extracting(FeldType::getDatentyp).extracting(DatentypCodeType::getCode).isEqualTo(DatentypCode.DATE.getCode());
} }
@Test @Test
void shouldHaveListURI() { void shouldHaveListURI() {
var mapped = create(); var mapped = create(vorgang);
assertThat(mapped).extracting(FeldType::getDatentyp).extracting(DatentypCodeType::getListURI) assertThat(mapped).extracting(FeldType::getDatentyp).extracting(DatentypCodeType::getListURI)
.isEqualTo("urn:xoev-de:xdomea:codeliste:datentyp"); .isEqualTo("urn:xoev-de:xdomea:codeliste:datentyp");
...@@ -341,14 +424,14 @@ class FeldGruppeTypeCreatorTest { ...@@ -341,14 +424,14 @@ class FeldGruppeTypeCreatorTest {
@Test @Test
void shouldHaveListVersionID() { void shouldHaveListVersionID() {
var mapped = create(); var mapped = create(vorgang);
assertThat(mapped).extracting(FeldType::getDatentyp).extracting(DatentypCodeType::getListVersionID).isEqualTo("1.1"); assertThat(mapped).extracting(FeldType::getDatentyp).extracting(DatentypCodeType::getListVersionID).isEqualTo("1.1");
} }
} }
private FeldType create() { private FeldType create(VorgangWithEingang vorgang) {
return creator.createFeldType(vorgang).stream() return creator.createFeldType(vorgang).stream()
.filter(feldType -> feldType.getName().equals(ExportFelder.GEBURTSDATUM.getName())) .filter(feldType -> feldType.getName().equals(ExportFelder.GEBURTSDATUM.getName()))
.toList().get(0); .toList().get(0);
...@@ -361,32 +444,59 @@ class FeldGruppeTypeCreatorTest { ...@@ -361,32 +444,59 @@ class FeldGruppeTypeCreatorTest {
@Test @Test
void shouldHaveName() { void shouldHaveName() {
var mapped = create(); var mapped = create(vorgang);
assertThat(mapped).extracting(FeldType::getName).isEqualTo("PLZAntragsteller"); assertThat(mapped).extracting(FeldType::getName).isEqualTo("PLZAntragsteller");
} }
@Test @Test
void shouldHaveNotHaveBeschreibung() { void shouldHaveNotHaveBeschreibung() {
var mapped = create(); var mapped = create(vorgang);
assertThat(mapped).extracting(FeldType::getBeschreibung).isNull(); assertThat(mapped).extracting(FeldType::getBeschreibung).isNull();
} }
@Test @Test
void shouldHaveWert() { void shouldHaveWert() {
var mapped = create(); var mapped = create(vorgang);
assertThat(mapped).extracting(FeldType::getWert).isEqualTo(AntragstellerTestFactory.PLZ); assertThat(mapped).extracting(FeldType::getWert).isEqualTo(AntragstellerTestFactory.PLZ);
} }
@Test
void shouldBeEmptyStringForNullEingang() {
var mapped = create(VorgangWithEingangTestFactory.createBuilder().eingang(null).build());
assertThat(mapped).extracting(FeldType::getWert).isEqualTo(StringUtils.EMPTY);
}
@Test
void shouldBeEmptyStringForNullAntragsteller() {
var mapped = create(
VorgangWithEingangTestFactory.createBuilder().eingang(EingangTestFactory.createBuilder().antragsteller(null).build())
.build());
assertThat(mapped).extracting(FeldType::getWert).isEqualTo(StringUtils.EMPTY);
}
@Test
void shouldBeEmptyStringForNullPlz() {
var mapped = create(
VorgangWithEingangTestFactory.createBuilder().eingang(
EingangTestFactory.createBuilder().antragsteller(AntragstellerTestFactory.createBuilder().plz(null).build())
.build())
.build());
assertThat(mapped).extracting(FeldType::getWert).isEqualTo(StringUtils.EMPTY);
}
@DisplayName("DatentypCode") @DisplayName("DatentypCode")
@Nested @Nested
class TestDatentypCode { class TestDatentypCode {
@Test @Test
void shouldHaveCode() { void shouldHaveCode() {
var mapped = create(); var mapped = create(vorgang);
assertThat(mapped).extracting(FeldType::getDatentyp).extracting(DatentypCodeType::getCode) assertThat(mapped).extracting(FeldType::getDatentyp).extracting(DatentypCodeType::getCode)
.isEqualTo(DatentypCode.STRING.getCode()); .isEqualTo(DatentypCode.STRING.getCode());
...@@ -394,7 +504,7 @@ class FeldGruppeTypeCreatorTest { ...@@ -394,7 +504,7 @@ class FeldGruppeTypeCreatorTest {
@Test @Test
void shouldHaveListURI() { void shouldHaveListURI() {
var mapped = create(); var mapped = create(vorgang);
assertThat(mapped).extracting(FeldType::getDatentyp).extracting(DatentypCodeType::getListURI) assertThat(mapped).extracting(FeldType::getDatentyp).extracting(DatentypCodeType::getListURI)
.isEqualTo("urn:xoev-de:xdomea:codeliste:datentyp"); .isEqualTo("urn:xoev-de:xdomea:codeliste:datentyp");
...@@ -402,14 +512,14 @@ class FeldGruppeTypeCreatorTest { ...@@ -402,14 +512,14 @@ class FeldGruppeTypeCreatorTest {
@Test @Test
void shouldHaveListVersionID() { void shouldHaveListVersionID() {
var mapped = create(); var mapped = create(vorgang);
assertThat(mapped).extracting(FeldType::getDatentyp).extracting(DatentypCodeType::getListVersionID).isEqualTo("1.1"); assertThat(mapped).extracting(FeldType::getDatentyp).extracting(DatentypCodeType::getListVersionID).isEqualTo("1.1");
} }
} }
private FeldType create() { private FeldType create(VorgangWithEingang vorgang) {
return creator.createFeldType(vorgang).stream() return creator.createFeldType(vorgang).stream()
.filter(feldType -> feldType.getName().equals(ExportFelder.PLZ.getName())) .filter(feldType -> feldType.getName().equals(ExportFelder.PLZ.getName()))
.toList().get(0); .toList().get(0);
......
...@@ -3,6 +3,7 @@ package de.ozgcloud.alfa.export; ...@@ -3,6 +3,7 @@ package de.ozgcloud.alfa.export;
import static org.assertj.core.api.Assertions.*; import static org.assertj.core.api.Assertions.*;
import static org.mockito.Mockito.*; import static org.mockito.Mockito.*;
import org.apache.commons.lang3.StringUtils;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
...@@ -14,6 +15,7 @@ import de.ozgcloud.alfa.common.TestUtils; ...@@ -14,6 +15,7 @@ import de.ozgcloud.alfa.common.TestUtils;
import de.ozgcloud.alfa.common.file.OzgFile; import de.ozgcloud.alfa.common.file.OzgFile;
import de.ozgcloud.alfa.common.file.OzgFileTestFactory; import de.ozgcloud.alfa.common.file.OzgFileTestFactory;
import de.ozgcloud.alfa.vorgang.EingangHeaderTestFactory; import de.ozgcloud.alfa.vorgang.EingangHeaderTestFactory;
import de.ozgcloud.alfa.vorgang.EingangTestFactory;
import de.ozgcloud.alfa.vorgang.VorgangWithEingang; import de.ozgcloud.alfa.vorgang.VorgangWithEingang;
import de.ozgcloud.alfa.vorgang.VorgangWithEingangTestFactory; import de.ozgcloud.alfa.vorgang.VorgangWithEingangTestFactory;
...@@ -66,6 +68,40 @@ class PrimaerdokumentTypeCreatorTest { ...@@ -66,6 +68,40 @@ class PrimaerdokumentTypeCreatorTest {
} }
} }
@Nested
class TestErsteller {
private final OzgFile ozgFile = OzgFileTestFactory.create();
@Test
void shouldBeEmptyStringForNullEingang() {
var vorgang = VorgangWithEingangTestFactory.createBuilder().eingang(null).build();
var primaerdokument = creator.createPrimaerdokumentType(vorgang, ozgFile);
assertThat(primaerdokument.getErsteller()).isEqualTo(StringUtils.EMPTY);
}
@Test
void shouldBeEmptyStringForNullEingangHeader() {
var vorgang = VorgangWithEingangTestFactory.createBuilder().eingang(EingangTestFactory.createBuilder().header(null).build()).build();
var primaerdokument = creator.createPrimaerdokumentType(vorgang, ozgFile);
assertThat(primaerdokument.getErsteller()).isEqualTo(StringUtils.EMPTY);
}
@Test
void shouldBeEmptyStringForNullFormEngineName() {
var vorgang = VorgangWithEingangTestFactory.createBuilder()
.eingang(EingangTestFactory.createBuilder().header(EingangHeaderTestFactory.createBuilder().formEngineName(null).build()).build())
.build();
var primaerdokument = creator.createPrimaerdokumentType(vorgang, ozgFile);
assertThat(primaerdokument.getErsteller()).isEqualTo(StringUtils.EMPTY);
}
}
@Nested @Nested
class TestCreateDateiname { class TestCreateDateiname {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment