diff --git a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidService.java b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidService.java index 537d205f1833c81edc1c5d0d65eb0ef467bb991a..7d7a715a589b079b30ec971790574dc899ab3cf2 100644 --- a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidService.java +++ b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidService.java @@ -19,6 +19,7 @@ import de.ozgcloud.bescheid.vorgang.VorgangId; import de.ozgcloud.bescheid.vorgang.VorgangService; import de.ozgcloud.common.binaryfile.FileId; import de.ozgcloud.common.errorhandling.TechnicalException; +import de.ozgcloud.document.Document; import lombok.RequiredArgsConstructor; import lombok.extern.log4j.Log4j2; @@ -119,7 +120,7 @@ class BescheidService { return Bescheid.builder() .vorgangId(VorgangId.from(bescheidItem.getVorgangId())) .genehmigt(getBewilligt(bescheidItem)) - .bescheidFileId(FileId.from(MapUtils.getString(bescheidItem.getItem(), Bescheid.FIELD_BESCHEID_DOCUMENT))) + .bescheidFileId(getBescheidFileId(bescheidItem)) .nachrichtSubject(Optional.ofNullable(getNachrichtSubject(bescheidItem))) .nachrichtText(Optional.ofNullable(getNachrichtText(bescheidItem))) .createdBy(currentUserService.getUserProfile().getId()) @@ -127,6 +128,11 @@ class BescheidService { .build(); } + FileId getBescheidFileId(AttachedItem bescheidItem) { + var bescheidDocument = attachedItemService.getItem(MapUtils.getString(bescheidItem.getItem(), Bescheid.FIELD_BESCHEID_DOCUMENT)); + return FileId.from(MapUtils.getString(bescheidDocument.getItem(), Document.FIELD_DOCUMENT_FILE)); + } + String getNachrichtSubject(AttachedItem bescheidItem) { return MapUtils.getString(bescheidItem.getItem(), Bescheid.FIELD_NACHRICHT_SUBJECT); } diff --git a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/BescheidServiceTest.java b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/BescheidServiceTest.java index 9f96b98a60c87a1fcb1494d4293c169c0bcf0e9f..1c75018438672471dbcd4918ae9bb537f768dc3c 100644 --- a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/BescheidServiceTest.java +++ b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/BescheidServiceTest.java @@ -35,7 +35,9 @@ import de.ozgcloud.bescheid.vorgang.VorgangId; import de.ozgcloud.bescheid.vorgang.VorgangService; import de.ozgcloud.bescheid.vorgang.VorgangTestFactory; import de.ozgcloud.command.CommandTestFactory; +import de.ozgcloud.common.binaryfile.FileId; import de.ozgcloud.common.errorhandling.TechnicalException; +import de.ozgcloud.document.DocumentTestFactory; class BescheidServiceTest { @@ -184,6 +186,7 @@ class BescheidServiceTest { @Test void shouldCallValidateBescheid() { + doReturn(BescheidTestFactory.create()).when(service).buildBescheid(any(), any()); when(vorgangService.getById(any())).thenReturn(VorgangTestFactory.create()); sendBescheid(); @@ -193,6 +196,7 @@ class BescheidServiceTest { @Test void shouldCallVorgangService() { + doReturn(BescheidTestFactory.create()).when(service).buildBescheid(any(), any()); when(vorgangService.getById(any())).thenReturn(VorgangTestFactory.create()); sendBescheid(); @@ -203,6 +207,7 @@ class BescheidServiceTest { @Test void shouldCallBuildBescheid() { + doReturn(BescheidTestFactory.create()).when(service).buildBescheid(any(), any()); var serviceKonto = ServiceKontoTestFactory.create(); var vorgang = VorgangTestFactory.createBuilder().serviceKonto(serviceKonto).build(); doReturn(vorgang).when(vorgangService).getById(any()); @@ -225,6 +230,7 @@ class BescheidServiceTest { @Test void shouldCallSendBescheid() { + doReturn(BescheidTestFactory.create()).when(service).buildBescheid(any(), any()); when(vorgangService.getById(any())).thenReturn(VorgangTestFactory.create()); sendBescheid(); @@ -353,6 +359,7 @@ class BescheidServiceTest { void init() { when(callContextUser.getId()).thenReturn(UserId.from(CREATED_BY)); when(currentUserService.getUserProfile()).thenReturn(callContextUser); + doReturn(FileId.from(DocumentTestFactory.DOCUMENT_FILE)).when(service).getBescheidFileId(any()); } @Test @@ -378,11 +385,18 @@ class BescheidServiceTest { assertThat(result.isGenehmigt()).isTrue(); } + @Test + void shouldCallGetBescheidFileId() { + buildBescheid(); + + verify(service).getBescheidFileId(BESCHEID_ITEM); + } + @Test void shouldSetBescheidFileId() { var result = buildBescheid(); - assertThat(result.getBescheidFileId()).hasToString(AttachedItemTestFactory.BESCHEID_DOCUMENT); + assertThat(result.getBescheidFileId()).hasToString(DocumentTestFactory.DOCUMENT_FILE); } @Test @@ -425,6 +439,29 @@ class BescheidServiceTest { } } + @Nested + class TestGetBescheidFileId { + + @BeforeEach + void init() { + when(attachedItemService.getItem(anyString())).thenReturn(AttachedItemTestFactory.createDocument()); + } + + @Test + void shouldCallGetItem() { + service.getBescheidFileId(AttachedItemTestFactory.createBescheid()); + + verify(attachedItemService).getItem(AttachedItemTestFactory.BESCHEID_DOCUMENT); + } + + @Test + void shouldReturnBescheidFileId() { + var result = service.getBescheidFileId(AttachedItemTestFactory.createBescheid()); + + assertThat(result).hasToString(DocumentTestFactory.DOCUMENT_FILE); + } + } + @Nested class TestGetNachrichtSubject {