diff --git a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/TokenController.java b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/TokenController.java index 38762c999..22c999f2e 100644 --- a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/TokenController.java +++ b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/TokenController.java @@ -1,7 +1,7 @@ package it.pagopa.selfcare.onboarding.controller; import io.quarkus.security.Authenticated; -import io.smallrye.mutiny.Multi; +import io.smallrye.mutiny.Uni; import it.pagopa.selfcare.onboarding.controller.response.TokenResponse; import it.pagopa.selfcare.onboarding.mapper.TokenMapper; import it.pagopa.selfcare.onboarding.service.TokenService; @@ -11,6 +11,8 @@ import lombok.AllArgsConstructor; import org.eclipse.microprofile.openapi.annotations.Operation; +import java.util.List; + @Authenticated @Path("/v1/tokens") @AllArgsConstructor @@ -31,8 +33,10 @@ public class TokenController { @Operation(summary = "Retrieves the token for a given onboarding") @GET - public Multi getToken(@QueryParam(value = "onboardingId") String onboardingId){ + public Uni> getToken(@QueryParam(value = "onboardingId") String onboardingId){ return tokenService.getToken(onboardingId) - .map(tokenMapper::toResponse); + .map(tokens -> tokens.stream() + .map(tokenMapper::toResponse) + .toList()); } } diff --git a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/service/TokenService.java b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/service/TokenService.java index cc6a05c4a..95951cfe4 100644 --- a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/service/TokenService.java +++ b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/service/TokenService.java @@ -1,8 +1,10 @@ package it.pagopa.selfcare.onboarding.service; -import io.smallrye.mutiny.Multi; +import io.smallrye.mutiny.Uni; import it.pagopa.selfcare.onboarding.entity.Token; +import java.util.List; + public interface TokenService { - Multi getToken(String onboardingId); + Uni> getToken(String onboardingId); } diff --git a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/service/TokenServiceDefault.java b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/service/TokenServiceDefault.java index 725b198cb..e04167a9a 100644 --- a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/service/TokenServiceDefault.java +++ b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/service/TokenServiceDefault.java @@ -1,15 +1,17 @@ package it.pagopa.selfcare.onboarding.service; -import io.smallrye.mutiny.Multi; +import io.smallrye.mutiny.Uni; import it.pagopa.selfcare.onboarding.entity.Token; import jakarta.enterprise.context.ApplicationScoped; +import java.util.List; + @ApplicationScoped public class TokenServiceDefault implements TokenService { @Override - public Multi getToken(String onboardingId) { + public Uni> getToken(String onboardingId) { return Token.find("onboardingId", onboardingId) - .stream(); + .list(); } } diff --git a/apps/onboarding-ms/src/test/java/it/pagopa/selfcare/onboarding/controller/TokenControllerTest.java b/apps/onboarding-ms/src/test/java/it/pagopa/selfcare/onboarding/controller/TokenControllerTest.java index cc2a9ecde..30f12a3f3 100644 --- a/apps/onboarding-ms/src/test/java/it/pagopa/selfcare/onboarding/controller/TokenControllerTest.java +++ b/apps/onboarding-ms/src/test/java/it/pagopa/selfcare/onboarding/controller/TokenControllerTest.java @@ -7,12 +7,14 @@ import io.quarkus.test.mongodb.MongoTestResource; import io.quarkus.test.security.TestSecurity; import io.restassured.http.ContentType; -import io.smallrye.mutiny.Multi; +import io.smallrye.mutiny.Uni; import it.pagopa.selfcare.onboarding.entity.Token; import it.pagopa.selfcare.onboarding.service.TokenService; import org.bson.types.ObjectId; import org.junit.jupiter.api.Test; +import java.util.List; + import static io.restassured.RestAssured.given; import static org.mockito.Mockito.when; @@ -32,7 +34,7 @@ void getToken() { Token token = new Token(); token.setId(ObjectId.get()); when(tokenService.getToken(onboardingId)) - .thenReturn(Multi.createFrom().item(token)); + .thenReturn(Uni.createFrom().item(List.of(token))); given() .when() diff --git a/apps/onboarding-ms/src/test/java/it/pagopa/selfcare/onboarding/service/TokenServiceDefaultTest.java b/apps/onboarding-ms/src/test/java/it/pagopa/selfcare/onboarding/service/TokenServiceDefaultTest.java index 8c8f035e0..9ffa9d0ec 100644 --- a/apps/onboarding-ms/src/test/java/it/pagopa/selfcare/onboarding/service/TokenServiceDefaultTest.java +++ b/apps/onboarding-ms/src/test/java/it/pagopa/selfcare/onboarding/service/TokenServiceDefaultTest.java @@ -2,15 +2,17 @@ import io.quarkus.mongodb.panache.reactive.ReactivePanacheQuery; import io.quarkus.panache.mock.PanacheMock; -import io.quarkus.test.InjectMock; import io.quarkus.test.common.QuarkusTestResource; import io.quarkus.test.junit.QuarkusTest; import io.quarkus.test.mongodb.MongoTestResource; -import io.smallrye.mutiny.Multi; -import io.smallrye.mutiny.helpers.test.AssertSubscriber; +import io.smallrye.mutiny.Uni; +import io.smallrye.mutiny.helpers.test.UniAssertSubscriber; import it.pagopa.selfcare.onboarding.entity.Token; +import jakarta.inject.Inject; import org.junit.jupiter.api.Test; +import java.util.List; + import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -18,20 +20,21 @@ @QuarkusTestResource(MongoTestResource.class) public class TokenServiceDefaultTest { - @InjectMock + @Inject TokenServiceDefault tokenService; @Test void getToken() { final String onboardingId = "onboardingId"; ReactivePanacheQuery queryPage = mock(ReactivePanacheQuery.class); - when(queryPage.stream()).thenReturn(Multi.createFrom().items(new Token())); + when(queryPage.list()).thenReturn(Uni.createFrom().item(List.of(new Token()))); PanacheMock.mock(Token.class); - when(Token.find("onboardingId", onboardingId)).thenReturn(queryPage); + when(Token.find("onboardingId", onboardingId)) + .thenReturn(queryPage); - tokenService.getToken(onboardingId) - .subscribe().withSubscriber(AssertSubscriber.create()) + UniAssertSubscriber> subscriber = tokenService.getToken(onboardingId) + .subscribe().withSubscriber(UniAssertSubscriber.create()) .assertCompleted(); } }