diff --git a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/antragraum/AntragraumService.java b/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/antragraum/AntragraumService.java index 4a3c4a9fde2333c0a76dc93155ac57716143c61a..7e6e1c18844e737bb979c5b10cd409e35e6f4661 100644 --- a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/antragraum/AntragraumService.java +++ b/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/antragraum/AntragraumService.java @@ -27,7 +27,6 @@ import static java.util.Objects.*; import java.time.ZonedDateTime; import java.util.Comparator; -import java.util.List; import java.util.Optional; import java.util.stream.Stream; @@ -103,10 +102,11 @@ public class AntragraumService { public Stream<RueckfrageHead> findRueckfragen(String samlToken) { verifyToken(samlToken); - var rueckfragen = postfachNachrichtService.findRueckfragen(BAYERN_ID_SERVICE_KONTO_TYPE, getPostfachId(samlToken)) + return postfachNachrichtService.findRueckfragen(BAYERN_ID_SERVICE_KONTO_TYPE, getPostfachId(samlToken)) .map(rueckfrageMapper::fromPostfachNachricht) - .map(rueckfrage -> enrichByAnswers(rueckfrage, samlToken)).toList(); - return enrichRueckfragen(rueckfragen, samlToken); + .map(rueckfrage -> enrichByAnswers(rueckfrage, samlToken)) + .map(rueckfrage -> addVorgangData(rueckfrage, vorgangService.getVorgang(rueckfrage.getVorgangId()))) + .map(rueckfrage -> addAccessible(rueckfrage, samlToken)); } RueckfrageHead enrichByAnswers(RueckfrageHead rueckfrage, String samlToken) { @@ -122,21 +122,6 @@ public class AntragraumService { return answers.sorted(Comparator.comparing(PostfachNachricht::getSentAt)).map(PostfachNachricht::getSentAt).findFirst(); } - Stream<RueckfrageHead> enrichRueckfragen(List<RueckfrageHead> rueckfragen, String samlToken) { - if (rueckfragen.isEmpty()) { - return Stream.empty(); - } - var vorgang = vorgangService.getVorgang(rueckfragen.getFirst().getVorgangId()); - - return rueckfragen.stream() - .map(rueckfrage -> addVorgangData(rueckfrage, vorgang)) - .map(rueckfrage -> addAccessible(rueckfrage, samlToken)); - } - - RueckfrageHead addAccessible(RueckfrageHead rueckfrage, String samlToken) { - return rueckfrage.toBuilder().accessible(isAccessible(samlToken, rueckfrage.getTrustLevel())).build(); - } - RueckfrageHead addVorgangData(RueckfrageHead rueckfrage, Vorgang vorgang) { return rueckfrage.toBuilder() .vorgangName(vorgang.getName()) @@ -145,6 +130,10 @@ public class AntragraumService { .build(); } + RueckfrageHead addAccessible(RueckfrageHead rueckfrage, String samlToken) { + return rueckfrage.toBuilder().accessible(isAccessible(samlToken, rueckfrage.getTrustLevel())).build(); + } + public String sendRueckfrageAnswer(String samlToken, String rueckfrageId, PostfachNachricht nachricht) { verifyToken(samlToken); diff --git a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/antragraum/AntragraumServiceTest.java b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/antragraum/AntragraumServiceTest.java index f07fd84edc2b0dc3837c2e6d61ab4c2808813e71..9239d7d03256c447e132b3d3d168a3f5f78d3963 100644 --- a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/antragraum/AntragraumServiceTest.java +++ b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/antragraum/AntragraumServiceTest.java @@ -5,7 +5,6 @@ import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; import java.time.ZonedDateTime; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Optional; @@ -84,15 +83,20 @@ class AntragraumServiceTest { private final RueckfrageHead rueckfrage = RueckfrageHeadTestFactory.create(); private final PostfachNachricht postfachNachricht = PostfachNachrichtTestFactory.create(); + private final Vorgang vorgang = VorgangTestFactory.create(); + @BeforeEach void mock() { when(postfachNachrichtService.findRueckfragen(any(), any())).thenReturn(Stream.of(postfachNachricht)); when(rueckfrageMapper.fromPostfachNachricht(any())).thenReturn(rueckfrage); doReturn(rueckfrage).when(service).enrichByAnswers(any(), any()); - doReturn(Stream.of(rueckfrage)).when(service).enrichRueckfragen(any(), any()); + when(vorgangService.getVorgang(any())).thenReturn(vorgang); doReturn(POSTFACH_ID).when(service).getPostfachId(any()); + doReturn(rueckfrage).when(service).addVorgangData(any(), any()); + doReturn(rueckfrage).when(service).addAccessible(any(), any()); + doNothing().when(service).verifyToken(any()); } @@ -132,10 +136,24 @@ class AntragraumServiceTest { } @Test - void shouldCallEnrichRueckfragen() { + void shouldCallVorgangService() { + findRueckfragen(); + + verify(vorgangService).getVorgang(RueckfrageHeadTestFactory.VORGANG_ID); + } + + @Test + void shouldCallEnrichByVorgangData() { findRueckfragen(); - verify(service).enrichRueckfragen(any(), eq(SAML_TOKEN)); + verify(service).addVorgangData(rueckfrage, vorgang); + } + + @Test + void shouldAddAccessible() { + findRueckfragen(); + + verify(service).addAccessible(rueckfrage, SAML_TOKEN); } @Test @@ -199,69 +217,6 @@ class AntragraumServiceTest { } } - @DisplayName("Enrich rueckfragen") - @Nested - class TestEnrichRueckfragen { - - private final RueckfrageHead rueckfrageHead = RueckfrageHeadTestFactory.create(); - private final List<RueckfrageHead> rueckfragen = Collections.singletonList(rueckfrageHead); - - private final Vorgang vorgang = VorgangTestFactory.create(); - - @DisplayName("should return an empty stream is no rueckfragen exists") - @Test - void shouldReturnEmptyStream() { - var rueckfragen = service.enrichRueckfragen(Collections.emptyList(), GrpcGetRueckfrageRequestTestFactory.SAML_TOKEN).toList(); - - assertThat(rueckfragen).isEmpty(); - } - - @DisplayName("on existing rueckfragen") - @Nested - class TestOnExistingRueckfragen { - - @BeforeEach - void mock() { - when(vorgangService.getVorgang(any())).thenReturn(vorgang); - - doReturn(rueckfrageHead).when(service).addVorgangData(any(), any()); - doReturn(rueckfrageHead).when(service).addAccessible(any(), any()); - } - - @Test - void shouldCallVorgangService() { - enrichRueckfragen(); - - verify(vorgangService).getVorgang(RueckfrageHeadTestFactory.VORGANG_ID); - } - - @Test - void shouldAddVorgangData() { - enrichRueckfragen(); - - verify(service).addVorgangData(rueckfrageHead, vorgang); - } - - @Test - void shouldAddAccessible() { - enrichRueckfragen(); - - verify(service).addAccessible(rueckfrageHead, GrpcGetRueckfrageRequestTestFactory.SAML_TOKEN); - } - - @Test - void shouldReturnEnrichedRueckfragen() { - var enrichedRueckfragen = enrichRueckfragen(); - - assertThat(enrichedRueckfragen).containsExactly(rueckfrageHead); - } - } - - private List<RueckfrageHead> enrichRueckfragen() { - return service.enrichRueckfragen(rueckfragen, GrpcGetRueckfrageRequestTestFactory.SAML_TOKEN).toList(); - } - } - @DisplayName("Add accessible") @Nested class TestAddAccessible {