Skip to content

Commit

Permalink
refactor get tokens service
Browse files Browse the repository at this point in the history
  • Loading branch information
manuraf committed Jan 31, 2024
1 parent fd71c63 commit ab129b5
Show file tree
Hide file tree
Showing 5 changed files with 31 additions and 18 deletions.
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -11,6 +11,8 @@
import lombok.AllArgsConstructor;
import org.eclipse.microprofile.openapi.annotations.Operation;

import java.util.List;

@Authenticated
@Path("/v1/tokens")
@AllArgsConstructor
Expand All @@ -31,8 +33,10 @@ public class TokenController {

@Operation(summary = "Retrieves the token for a given onboarding")
@GET
public Multi<TokenResponse> getToken(@QueryParam(value = "onboardingId") String onboardingId){
public Uni<List<TokenResponse>> getToken(@QueryParam(value = "onboardingId") String onboardingId){
return tokenService.getToken(onboardingId)
.map(tokenMapper::toResponse);
.map(tokens -> tokens.stream()
.map(tokenMapper::toResponse)
.toList());
}
}
Original file line number Diff line number Diff line change
@@ -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<Token> getToken(String onboardingId);
Uni<List<Token>> getToken(String onboardingId);
}
Original file line number Diff line number Diff line change
@@ -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<Token> getToken(String onboardingId) {
public Uni<List<Token>> getToken(String onboardingId) {
return Token.find("onboardingId", onboardingId)
.stream();
.list();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,36 +2,39 @@

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;

@QuarkusTest
@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<List<Token>> subscriber = tokenService.getToken(onboardingId)
.subscribe().withSubscriber(UniAssertSubscriber.create())
.assertCompleted();
}
}

0 comments on commit ab129b5

Please sign in to comment.