diff --git a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/antragraum/AntragraumGrpcService.java b/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/antragraum/AntragraumGrpcService.java index 40f48242f5b18e429894e065beb891dc753bdf07..3684ce3c2f2c29b5dda1966a5e48bcc4d1ed0cbd 100644 --- a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/antragraum/AntragraumGrpcService.java +++ b/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/antragraum/AntragraumGrpcService.java @@ -30,6 +30,7 @@ import java.util.stream.Stream; import org.apache.commons.lang3.StringUtils; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import de.ozgcloud.common.errorhandling.TechnicalException; import de.ozgcloud.nachrichten.postfach.PostfachNachricht; import io.grpc.stub.StreamObserver; import lombok.RequiredArgsConstructor; @@ -79,7 +80,8 @@ class AntragraumGrpcService extends AntragraumServiceGrpc.AntragraumServiceImplB Rueckfrage getRueckfrage(String samlToken, String postfachNachrichtId) { return antragraumService.findRueckfragen(samlToken) .filter(rueckfrage -> StringUtils.equals(rueckfrage.getId(), postfachNachrichtId)) - .toList().getFirst(); + .findFirst() + .orElseThrow(() -> new TechnicalException(String.format("No rueckfrage found for answer with id %s", postfachNachrichtId))); } PostfachNachricht enrichRueckfrageAnswer(PostfachNachricht answer, Rueckfrage rueckfrage) { diff --git a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/antragraum/AntragraumGrpcServiceTest.java b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/antragraum/AntragraumGrpcServiceTest.java index f99541375f65adb452586d842e71580e75ab8831..6b96cc3be43f4a2797608efb1350768c1c50f502 100644 --- a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/antragraum/AntragraumGrpcServiceTest.java +++ b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/antragraum/AntragraumGrpcServiceTest.java @@ -37,6 +37,7 @@ import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Spy; +import de.ozgcloud.common.errorhandling.TechnicalException; import de.ozgcloud.nachrichten.postfach.PostfachNachricht; import de.ozgcloud.nachrichten.postfach.PostfachNachrichtTestFactory; import io.grpc.stub.StreamObserver; @@ -183,6 +184,13 @@ class AntragraumGrpcServiceTest { assertThat(rueckfrage).isEqualTo(matchingRueckfrage); } + @Test + void shouldThrowExceptionIfNoRueckfrageExists() { + when(service.findRueckfragen(any())).thenReturn(Stream.empty()); + + assertThatThrownBy(() -> getRueckfrage()).isInstanceOf(TechnicalException.class); + } + private Rueckfrage getRueckfrage() { return grpcService.getRueckfrage(GrpcSendRueckfrageAnswerRequestTestFactory.SAML_TOKEN, GrpcRueckfrageAnswerTestFactory.RUECKFRAGE_ID);