diff --git a/src/main/java/it/gov/pagopa/tpp/controller/TppController.java b/src/main/java/it/gov/pagopa/tpp/controller/TppController.java index 322b453..a8cbd2a 100644 --- a/src/main/java/it/gov/pagopa/tpp/controller/TppController.java +++ b/src/main/java/it/gov/pagopa/tpp/controller/TppController.java @@ -74,4 +74,8 @@ public interface TppController { @GetMapping("/entityId/{entityId}") Mono> getTppByEntityId(@Valid @PathVariable String entityId); + @GetMapping("/network/connection/{tppName}") + Mono> testConnection(@Valid @PathVariable String tppName); + + } diff --git a/src/main/java/it/gov/pagopa/tpp/controller/TppControllerImpl.java b/src/main/java/it/gov/pagopa/tpp/controller/TppControllerImpl.java index 82308e2..0cfea84 100644 --- a/src/main/java/it/gov/pagopa/tpp/controller/TppControllerImpl.java +++ b/src/main/java/it/gov/pagopa/tpp/controller/TppControllerImpl.java @@ -66,4 +66,10 @@ public Mono> getTppByEntityId(String e .map(ResponseEntity::ok); } + @Override + public Mono> testConnection(String tppName) { + return tppService.testConnection(tppName) + .map(ResponseEntity::ok); + } + } diff --git a/src/main/java/it/gov/pagopa/tpp/dto/NetworkResponseDTO.java b/src/main/java/it/gov/pagopa/tpp/dto/NetworkResponseDTO.java new file mode 100644 index 0000000..be80928 --- /dev/null +++ b/src/main/java/it/gov/pagopa/tpp/dto/NetworkResponseDTO.java @@ -0,0 +1,9 @@ +package it.gov.pagopa.tpp.dto; + +import lombok.Data; + +@Data +public class NetworkResponseDTO { + private String code; + private String message; +} diff --git a/src/main/java/it/gov/pagopa/tpp/service/TppService.java b/src/main/java/it/gov/pagopa/tpp/service/TppService.java index 93d051a..f78587f 100644 --- a/src/main/java/it/gov/pagopa/tpp/service/TppService.java +++ b/src/main/java/it/gov/pagopa/tpp/service/TppService.java @@ -1,5 +1,6 @@ package it.gov.pagopa.tpp.service; +import it.gov.pagopa.tpp.dto.NetworkResponseDTO; import it.gov.pagopa.tpp.dto.TokenSectionDTO; import it.gov.pagopa.tpp.dto.TppDTO; import it.gov.pagopa.tpp.dto.TppDTOWithoutTokenSection; @@ -25,4 +26,6 @@ public interface TppService { Mono getTppByEntityId(String entityId); + Mono testConnection(String tppName); + } diff --git a/src/main/java/it/gov/pagopa/tpp/service/TppServiceImpl.java b/src/main/java/it/gov/pagopa/tpp/service/TppServiceImpl.java index 86b3232..9eedadc 100644 --- a/src/main/java/it/gov/pagopa/tpp/service/TppServiceImpl.java +++ b/src/main/java/it/gov/pagopa/tpp/service/TppServiceImpl.java @@ -6,6 +6,7 @@ import it.gov.pagopa.tpp.configuration.ExceptionMap; import it.gov.pagopa.tpp.constants.TppConstants.ExceptionMessage; import it.gov.pagopa.tpp.constants.TppConstants.ExceptionName; +import it.gov.pagopa.tpp.dto.NetworkResponseDTO; import it.gov.pagopa.tpp.dto.TokenSectionDTO; import it.gov.pagopa.tpp.dto.TppDTO; import it.gov.pagopa.tpp.dto.TppDTOWithoutTokenSection; @@ -220,4 +221,18 @@ public Mono getTokenSection(String tppId) { .doOnError(error -> log.error("[TPP-SERVICE][GET] Error retrieving TokenSection for tppId {}: {}", tppId, error.getMessage())); } + + @Override + public Mono testConnection(String tppName) { + return Mono.just(createNetworkResponse(tppName)); + } + + private NetworkResponseDTO createNetworkResponse(String tppName){ + NetworkResponseDTO networkResponseDTO = new NetworkResponseDTO(); + networkResponseDTO.setCode("PAGOPA_NETWORK_TEST"); + networkResponseDTO.setMessage(tppName+" ha raggiunto i nostri sistemi"); + return networkResponseDTO; + } + + } \ No newline at end of file diff --git a/src/test/java/it/gov/pagopa/tpp/controller/TppControllerTest.java b/src/test/java/it/gov/pagopa/tpp/controller/TppControllerTest.java index 23d4e5a..8fbb37a 100644 --- a/src/test/java/it/gov/pagopa/tpp/controller/TppControllerTest.java +++ b/src/test/java/it/gov/pagopa/tpp/controller/TppControllerTest.java @@ -1,6 +1,7 @@ package it.gov.pagopa.tpp.controller; import com.fasterxml.jackson.databind.ObjectMapper; +import it.gov.pagopa.tpp.dto.NetworkResponseDTO; import it.gov.pagopa.tpp.dto.TokenSectionDTO; import it.gov.pagopa.tpp.dto.TppDTO; import it.gov.pagopa.tpp.dto.TppDTOWithoutTokenSection; @@ -178,4 +179,22 @@ void getEnabled_Ok() { Assertions.assertTrue(resultResponse.containsAll(MOCK_TPP_DTO_LIST)); }); } + + @Test + void testConnection() { + NetworkResponseDTO networkResponseDTO = new NetworkResponseDTO(); + networkResponseDTO.setMessage("tppName ha raggiunto i nostri sistemi"); + networkResponseDTO.setCode("PAGOPA_NETWORK_TEST"); + Mockito.when(tppService.testConnection("tppName")).thenReturn(Mono.just(networkResponseDTO)); + + webClient.get() + .uri("/emd/tpp/network/connection/{tppName}","tppName") + .exchange() + .expectStatus().isOk() + .expectBody(NetworkResponseDTO.class) + .consumeWith(response -> { + NetworkResponseDTO resultResponse = response.getResponseBody(); + Assertions.assertNotNull(resultResponse); + }); + } } \ No newline at end of file diff --git a/src/test/java/it/gov/pagopa/tpp/service/TppServiceTest.java b/src/test/java/it/gov/pagopa/tpp/service/TppServiceTest.java index 564a7dc..66d3f03 100644 --- a/src/test/java/it/gov/pagopa/tpp/service/TppServiceTest.java +++ b/src/test/java/it/gov/pagopa/tpp/service/TppServiceTest.java @@ -2,6 +2,7 @@ import it.gov.pagopa.common.web.exception.ClientExceptionWithBody; import it.gov.pagopa.tpp.configuration.ExceptionMap; +import it.gov.pagopa.tpp.dto.NetworkResponseDTO; import it.gov.pagopa.tpp.dto.mapper.TokenSectionObjectToDTOMapper; import it.gov.pagopa.tpp.dto.mapper.TppObjectToDTOMapper; import it.gov.pagopa.tpp.dto.mapper.TppWithoutTokenSectionObjectToDTOMapper; @@ -262,6 +263,17 @@ void getTokenSection_TppNotFound() { throwable.getMessage().contains("Tpp not found during get process")) .verify(); } + + + @Test + void testConnection(){ + NetworkResponseDTO networkResponseDTO = new NetworkResponseDTO(); + networkResponseDTO.setMessage("tppName ha raggiunto i nostri sistemi"); + networkResponseDTO.setCode("PAGOPA_NETWORK_TEST"); + StepVerifier.create(tppService.testConnection("tppName")) + .expectNext(networkResponseDTO) + .verifyComplete(); + } }