Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: P4ADEV-1429 invoke service mock C003 #11

Merged
merged 2 commits into from
Dec 6, 2024
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
P4ADEV-1429 added junit test
RiccardoGiuliani committed Dec 6, 2024
commit 4ea564fa5ca171696d067d4bf9bb3a80b1f15827
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
package it.gov.pagopa.payhub.pdnd.anpr.c003.client;

import it.gov.pagopa.payhub.anpr.C003.model.generated.*;
import it.gov.pagopa.payhub.pdnd.anpr.c003.service.AnprC003ServiceConfig;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.test.util.ReflectionTestUtils;
import org.springframework.web.client.RestTemplate;

import java.util.List;

import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.*;

class AnprC003ClientImplTest {

@Mock
private RestTemplate restTemplate;

@Mock
private RestTemplateBuilder restTemplateBuilder;

@Mock
private AnprC003ServiceConfig anprC003ServiceConfig;

private AnprC003ClientImpl anprC003Client;

@BeforeEach
void setUp() {
MockitoAnnotations.openMocks(this);

when(restTemplateBuilder.build()).thenReturn(restTemplate);

anprC003Client = new AnprC003ClientImpl(restTemplateBuilder, anprC003ServiceConfig);
ReflectionTestUtils.setField(anprC003Client, "anprBasePath", "http://localhost:8080");
}

@Test
void getUserData() {
RichiestaE002 request = RichiestaE002.builder()
.idOperazioneClient("13f32508-7bcb-38d0-8510-d68bf240aa59-1733496758205")
.build();

TipoInfoSoggettoEnte subTypeInfo = TipoInfoSoggettoEnte.builder()
.id("nome")
.chiave("Jed")
.valore(TipoInfoValore.S)
.valoreTesto("Nome del soggetto")
.valoreData("2024-11-02")
.dettaglio("")
.build();

TipoDatiSoggettiEnte subDataTypes = TipoDatiSoggettiEnte.builder()
.infoSoggettoEnte(List.of(subTypeInfo))
.build();

TipoListaSoggetti subTypeList = TipoListaSoggetti.builder()
.datiSoggetto(List.of(subDataTypes))
.build();

RispostaE002OK mockResponse = RispostaE002OK.builder()
.idOperazioneANPR("ANPR-12345")
.listaSoggetti(subTypeList)
.build();

ResponseEntity<RispostaE002OK> responseEntity = ResponseEntity.ok(mockResponse);

when(anprC003ServiceConfig.getUrl()).thenReturn("/test");
when(restTemplate.exchange(
eq("http://localhost:8080/test"),
eq(HttpMethod.POST),
any(),
eq(RispostaE002OK.class)
)).thenReturn(responseEntity);

RispostaE002OK result = anprC003Client.getUserData(request);

assertEquals("ANPR-12345", result.getIdOperazioneANPR());
assertEquals(1, result.getListaSoggetti().getDatiSoggetto().size());
verify(restTemplate, times(1)).exchange(
eq("http://localhost:8080/test"),
eq(HttpMethod.POST),
any(),
eq(RispostaE002OK.class)
);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
package it.gov.pagopa.payhub.pdnd.anpr.c003.service;

import it.gov.pagopa.payhub.anpr.C003.model.generated.*;
import it.gov.pagopa.payhub.pdnd.anpr.c003.client.AnprC003ClientImpl;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.junit.jupiter.MockitoExtension;

import java.util.List;

import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.Mockito.*;

@ExtendWith(MockitoExtension.class)
class AnprC003ServiceTest {

@Mock
private AnprC003ClientImpl anprC003ClientImpl;

@InjectMocks
private AnprC003Service anprC003Service;

@Test
void getUserData() {
String fiscalCode = "DNTCRL65S67M126K";
String idAnpr = "d20fcd8e-f228-323c-8924-6405b44879bf";

TipoInfoSoggettoEnte subTypeInfo = TipoInfoSoggettoEnte.builder()
.id("nome")
.chiave("Jed")
.valore(TipoInfoValore.S)
.valoreTesto("Nome del soggetto")
.valoreData("2024-11-02")
.dettaglio("")
.build();

TipoDatiSoggettiEnte subDataTypes = TipoDatiSoggettiEnte.builder()
.infoSoggettoEnte(List.of(subTypeInfo))
.build();

TipoListaSoggetti subTypeList = TipoListaSoggetti.builder()
.datiSoggetto(List.of(subDataTypes))
.build();

RispostaE002OK mockResponse = RispostaE002OK.builder()
.idOperazioneANPR("12345")
.listaSoggetti(subTypeList)
.listaAnomalie(null)
.build();

when(anprC003ClientImpl.getUserData(Mockito.any(RichiestaE002.class))).thenReturn(mockResponse);

RispostaE002OK response = anprC003Service.getUserData(idAnpr, fiscalCode);

assertNotNull(response);
assertEquals("Jed", response.getListaSoggetti().getDatiSoggetto().getFirst().getInfoSoggettoEnte().getFirst().getChiave());
}
}
Original file line number Diff line number Diff line change
@@ -44,7 +44,7 @@ void setUp() {
@Test
void testGetIdAnprFromFc() {
RichiestaE002 request = RichiestaE002.builder()
.idOperazioneClient("ID-ENTE-myHost-1701102800550")
.idOperazioneClient("13f32508-7bcb-38d0-8510-d68bf240aa59-1733496758205")
.build();

RispostaE002OK mockResponse = RispostaE002OK.builder()