diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/kotlin/dev/dnpm/etl/processor/monitoring/ConnectionCheckService.kt | 3 | ||||
| -rw-r--r-- | src/test/kotlin/dev/dnpm/etl/processor/monitoring/ConnectionCheckServiceTest.kt | 141 |
2 files changed, 142 insertions, 2 deletions
diff --git a/src/main/kotlin/dev/dnpm/etl/processor/monitoring/ConnectionCheckService.kt b/src/main/kotlin/dev/dnpm/etl/processor/monitoring/ConnectionCheckService.kt index 1343ee0..bf8b8bd 100644 --- a/src/main/kotlin/dev/dnpm/etl/processor/monitoring/ConnectionCheckService.kt +++ b/src/main/kotlin/dev/dnpm/etl/processor/monitoring/ConnectionCheckService.kt @@ -183,8 +183,7 @@ class GPasConnectionCheckService( fun check() { result = try { val uri = UriComponentsBuilder.fromUriString( - gPasConfigProperties.uri?.replace("/\$pseudonymizeAllowCreate", "/metadata").toString() - ).build().toUri() + gPasConfigProperties.uri.toString()).path("/metadata").build().toUri() val headers = HttpHeaders() headers.contentType = MediaType.APPLICATION_JSON diff --git a/src/test/kotlin/dev/dnpm/etl/processor/monitoring/ConnectionCheckServiceTest.kt b/src/test/kotlin/dev/dnpm/etl/processor/monitoring/ConnectionCheckServiceTest.kt new file mode 100644 index 0000000..7205714 --- /dev/null +++ b/src/test/kotlin/dev/dnpm/etl/processor/monitoring/ConnectionCheckServiceTest.kt @@ -0,0 +1,141 @@ +package dev.dnpm.etl.processor.monitoring + +import dev.dnpm.etl.processor.config.GIcsConfigProperties +import dev.dnpm.etl.processor.config.GPasConfigProperties +import dev.dnpm.etl.processor.config.RestTargetProperties +import org.junit.jupiter.api.BeforeEach +import org.junit.jupiter.api.Nested +import org.junit.jupiter.api.Test +import org.junit.jupiter.api.extension.ExtendWith +import org.mockito.Mock +import org.mockito.junit.jupiter.MockitoExtension +import org.springframework.http.HttpMethod +import org.springframework.http.MediaType +import org.springframework.test.web.client.MockRestServiceServer +import org.springframework.test.web.client.match.MockRestRequestMatchers.method +import org.springframework.test.web.client.match.MockRestRequestMatchers.requestTo +import org.springframework.test.web.client.response.MockRestResponseCreators.withSuccess +import org.springframework.web.client.RestTemplate +import reactor.core.publisher.Sinks + +@ExtendWith(MockitoExtension::class) +class ConnectionCheckServiceTest { + + @Nested + inner class RestConnectionCheckServiceTest { + + lateinit var mockRestServiceServer: MockRestServiceServer + lateinit var service: RestConnectionCheckService + + @BeforeEach + fun setUp( + @Mock sink: Sinks.Many<ConnectionCheckResult> + ) { + val restTemplate = RestTemplate() + this.mockRestServiceServer = MockRestServiceServer.createServer(restTemplate) + + val restTargetProperties = RestTargetProperties( + "http://localhost/api", + "user", + "password", + ) + + this.service = RestConnectionCheckService(restTemplate, restTargetProperties, sink) + } + + @Test + fun shouldSendRequestToCorrectUri() { + this.mockRestServiceServer + .expect(method(HttpMethod.GET)) + .andExpect(requestTo("http://localhost/api/mtb/kaplan-meier/config")) + .andRespond( + withSuccess("OK", MediaType.APPLICATION_JSON), + ) + + this.service.check() + + this.mockRestServiceServer.verify() + + } + } + + @Nested + inner class GPasConnectionCheckServiceTest { + + lateinit var mockRestServiceServer: MockRestServiceServer + lateinit var service: GPasConnectionCheckService + + @BeforeEach + fun setUp( + @Mock sink: Sinks.Many<ConnectionCheckResult> + ) { + val restTemplate = RestTemplate() + this.mockRestServiceServer = MockRestServiceServer.createServer(restTemplate) + + val gpasTargetProperties = GPasConfigProperties( + "http://localhost/gpas", + null, + "patientDomain", + "genomDeTanDomain", + "username", + "password", + ) + + this.service = GPasConnectionCheckService(restTemplate, gpasTargetProperties, sink) + } + + @Test + fun shouldSendRequestToCorrectUri() { + this.mockRestServiceServer + .expect(method(HttpMethod.GET)) + .andExpect(requestTo("http://localhost/gpas/metadata")) + .andRespond( + withSuccess("OK", MediaType.APPLICATION_JSON), + ) + + this.service.check() + + this.mockRestServiceServer.verify() + + } + } + + @Nested + inner class GIcsConnectionCheckServiceTest { + + lateinit var mockRestServiceServer: MockRestServiceServer + lateinit var service: GIcsConnectionCheckService + + @BeforeEach + fun setUp( + @Mock sink: Sinks.Many<ConnectionCheckResult> + ) { + val restTemplate = RestTemplate() + this.mockRestServiceServer = MockRestServiceServer.createServer(restTemplate) + + val gicsTargetProperties = GIcsConfigProperties( + "http://localhost/gics", + "username", + "password", + ) + + this.service = GIcsConnectionCheckService(restTemplate, gicsTargetProperties, sink) + } + + @Test + fun shouldSendRequestToCorrectUri() { + this.mockRestServiceServer + .expect(method(HttpMethod.GET)) + .andExpect(requestTo("http://localhost/gics/metadata")) + .andRespond( + withSuccess("OK", MediaType.APPLICATION_JSON), + ) + + this.service.check() + + this.mockRestServiceServer.verify() + + } + } + +}
\ No newline at end of file |
