Skip to content

Commit

Permalink
added unit test
Browse files Browse the repository at this point in the history
  • Loading branch information
lorenzo-catalano committed Apr 5, 2024
1 parent 139f2ba commit 1d03b16
Show file tree
Hide file tree
Showing 3 changed files with 61 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -202,10 +202,8 @@ private it.gov.pagopa.gen.wispconverter.client.gpd.model.TransferModelDto extrac
*/
DigitalStampDTO digitalStampDTO = transferDTO.getDigitalStamp();
if (digitalStampDTO != null) {

transfer.setStamp(mapper.toStamp(digitalStampDTO));
} else {

String iban = transferDTO.getCreditIban();
if (iban == null) {
throw new AppException(AppErrorCodeMessageEnum.VALIDATION_INVALID_IBANS);
Expand All @@ -214,7 +212,6 @@ private it.gov.pagopa.gen.wispconverter.client.gpd.model.TransferModelDto extrac
transfer.setPostalIban(isPostalIBAN(iban) ? iban : null);
transfer.setOrganizationFiscalCode(organizationFiscalCode);
}

return transfer;
}

Expand Down
58 changes: 54 additions & 4 deletions src/test/java/it/gov/pagopa/wispconverter/RptTest.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
package it.gov.pagopa.wispconverter;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.mockito.Mockito.*;

import com.fasterxml.jackson.databind.ObjectMapper;
import it.gov.pagopa.gen.wispconverter.client.gpd.model.MultiplePaymentPositionModelDto;
import it.gov.pagopa.gen.wispconverter.client.iuvgenerator.model.IuvGenerationModelResponseDto;
import it.gov.pagopa.wispconverter.repository.RPTRequestRepository;
import it.gov.pagopa.wispconverter.repository.model.RPTRequestEntity;
Expand All @@ -15,6 +17,7 @@
import java.util.*;
import java.util.zip.GZIPOutputStream;
import org.junit.jupiter.api.Test;
import org.mockito.ArgumentCaptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
Expand Down Expand Up @@ -51,11 +54,11 @@ class RptTest {
@Qualifier("redisSimpleTemplate")
@MockBean private RedisTemplate<String, Object> redisSimpleTemplate;

private String getRptPayload(String station,String amount,String datiSpecificiRiscossione){
private String getRptPayload(boolean bollo,String station,String amount,String datiSpecificiRiscossione){
if(datiSpecificiRiscossione==null){
datiSpecificiRiscossione = "9/tipodovuto_7/datospecifico";
}
String rpt = TestUtils.loadFileContent("/requests/rpt.xml");
String rpt = TestUtils.loadFileContent(bollo?"/requests/rptBollo.xml":"/requests/rpt.xml");
String rptreplace = rpt
.replace("{datiSpecificiRiscossione}",datiSpecificiRiscossione)
.replaceAll("\\{amount\\}", amount);
Expand Down Expand Up @@ -94,7 +97,7 @@ void success() throws Exception {
RPTRequestEntity.builder().primitive("nodoInviaRPT")
.payload(
new String(Base64.getEncoder().encode(zip(
getRptPayload(station,"100.00",null).getBytes(StandardCharsets.UTF_8))),StandardCharsets.UTF_8)
getRptPayload(false,station,"100.00",null).getBytes(StandardCharsets.UTF_8))),StandardCharsets.UTF_8)
).build()
)
);
Expand All @@ -114,6 +117,11 @@ void success() throws Exception {
verify(iuveneratorClient,times(1)).invokeAPI(any(),any(),any(),any(),any(),any(),any(),any(),any(),any(),any(),any());
verify(gpdClient,times(1)).invokeAPI(any(),any(),any(),any(),any(),any(),any(),any(),any(),any(),any(),any());
verify(decouplerCachingClient,times(1)).invokeAPI(any(),any(),any(),any(),any(),any(),any(),any(),any(),any(),any(),any());

ArgumentCaptor<Object> argument = ArgumentCaptor.forClass(Object.class);
verify(gpdClient).invokeAPI(any(),any(),any(),any(),argument.capture(),any(),any(),any(),any(),any(),any(),any());
MultiplePaymentPositionModelDto value = (MultiplePaymentPositionModelDto) argument.getValue();
assertEquals(1, value.getPaymentPositions().size());
}

@Test
Expand All @@ -136,7 +144,49 @@ void success_tassonomia() throws Exception {
RPTRequestEntity.builder().primitive("nodoInviaRPT")
.payload(
new String(Base64.getEncoder().encode(zip(
getRptPayload(station,"100.00","datispec").getBytes(StandardCharsets.UTF_8))),StandardCharsets.UTF_8)
getRptPayload(false,station,"100.00","datispec").getBytes(StandardCharsets.UTF_8))),StandardCharsets.UTF_8)
).build()
)
);
when(redisSimpleTemplate.opsForValue()).thenReturn(mock(ValueOperations.class));



mvc.perform(MockMvcRequestBuilders.get("/redirect?sessionId=aaaaaaaaaaaa").accept(MediaType.APPLICATION_JSON))
.andExpect(MockMvcResultMatchers.status().is3xxRedirection())
.andDo(
(result) -> {
assertNotNull(result);
assertNotNull(result.getResponse());
});

verify(checkoutClient,times(1)).invokeAPI(any(),any(),any(),any(),any(),any(),any(),any(),any(),any(),any(),any());
verify(iuveneratorClient,times(1)).invokeAPI(any(),any(),any(),any(),any(),any(),any(),any(),any(),any(),any(),any());
verify(gpdClient,times(1)).invokeAPI(any(),any(),any(),any(),any(),any(),any(),any(),any(),any(),any(),any());
verify(decouplerCachingClient,times(1)).invokeAPI(any(),any(),any(),any(),any(),any(),any(),any(),any(),any(),any(),any());
}

@Test
void success_bollo() throws Exception {
String station = "mystation";
TestUtils.setMock(cacheClient,ResponseEntity.ok().body(TestUtils.configData(station)));

org.springframework.test.util.ReflectionTestUtils.setField(configCacheService, "configCacheClient",cacheClient);
HttpHeaders headers = new HttpHeaders();
headers.add("location","locationheader");
TestUtils.setMock(checkoutClient, ResponseEntity.status(HttpStatus.FOUND).headers(headers).build());

IuvGenerationModelResponseDto iuvGenerationModelResponseDto = new IuvGenerationModelResponseDto();
iuvGenerationModelResponseDto.setIuv("00000000");
TestUtils.setMock(iuveneratorClient,ResponseEntity.ok().body(iuvGenerationModelResponseDto));
TestUtils.setMock(gpdClient,ResponseEntity.ok().build());
TestUtils.setMock(decouplerCachingClient,ResponseEntity.ok().build());
when(rptRequestRepository.findById(any())).thenReturn(
Optional.of(
RPTRequestEntity.builder().primitive("nodoInviaRPT")
.payload(
new String(Base64.getEncoder().encode(zip(
getRptPayload(true,station,"100.00",null).getBytes(StandardCharsets.UTF_8))),StandardCharsets.UTF_8)
).build()
)
);
Expand Down
14 changes: 7 additions & 7 deletions src/test/resources/requests/rptBollo.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<identificativoDominio>{pa}</identificativoDominio>
</dominio>
<identificativoMessaggioRichiesta>3179612d79fa3366</identificativoMessaggioRichiesta>
<dataOraMessaggioRichiesta>2017-09-06T17:13:30</dataOraMessaggioRichiesta>
<dataOraMessaggioRichiesta>{dataOraMessaggioRichiesta}T17:13:30</dataOraMessaggioRichiesta>
<autenticazioneSoggetto>USR</autenticazioneSoggetto>
<soggettoPagatore>
<identificativoUnivocoPagatore>
Expand All @@ -21,22 +21,22 @@
<denominazioneBeneficiario>Comune di Nuoro</denominazioneBeneficiario>
</enteBeneficiario>
<datiVersamento>
<dataEsecuzionePagamento>2017-09-06</dataEsecuzionePagamento>
<dataEsecuzionePagamento>{dataEsecuzionePagamento}</dataEsecuzionePagamento>
<importoTotaleDaVersare>{amount}</importoTotaleDaVersare>
<tipoVersamento>{tipoVersamento}</tipoVersamento>
<identificativoUnivocoVersamento>{iuv}</identificativoUnivocoVersamento>
<codiceContestoPagamento>{ccp}</codiceContestoPagamento>
<firmaRicevuta>0</firmaRicevuta>
<datiSingoloVersamento>
<importoSingoloVersamento>{amountVersamento1}</importoSingoloVersamento>
<ibanAccredito>IT96R0123454321000000012345</ibanAccredito>
<importoSingoloVersamento>{amount}</importoSingoloVersamento>
<ibanAccredito>IT96R0760154321000000012345</ibanAccredito>
<causaleVersamento>Pagamento di prova</causaleVersamento>
<datiSpecificiRiscossione>9/tipodovuto_6</datiSpecificiRiscossione>
<datiSpecificiRiscossione>{datiSpecificiRiscossione}</datiSpecificiRiscossione>
</datiSingoloVersamento>
<datiSingoloVersamento>
<importoSingoloVersamento>{amountBollo}</importoSingoloVersamento>
<importoSingoloVersamento>{amount}</importoSingoloVersamento>
<causaleVersamento>Pagamento di prova</causaleVersamento>
<datiSpecificiRiscossione>9/tipodovuto_7</datiSpecificiRiscossione>
<datiSpecificiRiscossione>{datiSpecificiRiscossione}</datiSpecificiRiscossione>
<datiMarcaBolloDigitale>
<tipoBollo>01</tipoBollo>
<hashDocumento>YWVvbGlhbQ==</hashDocumento>
Expand Down

0 comments on commit 1d03b16

Please sign in to comment.