diff --git a/theodolite/build.gradle b/theodolite/build.gradle index 7e10245b8605ba926ac171e260bc145378a0d8d8..2ca866416674985194135def55b782102505f3c7 100644 --- a/theodolite/build.gradle +++ b/theodolite/build.gradle @@ -31,7 +31,8 @@ dependencies { testImplementation 'io.quarkus:quarkus-junit5' testImplementation 'io.quarkus:quarkus-test-kubernetes-client' - testImplementation 'io.rest-assured:rest-assured' + //testImplementation 'io.rest-assured:rest-assured' + testImplementation 'com.github.tomakehurst:wiremock-jre8:2.33.2' testImplementation 'org.junit-pioneer:junit-pioneer:1.5.0' testImplementation "org.mockito.kotlin:mockito-kotlin:4.0.0" } diff --git a/theodolite/src/test/kotlin/rocks/theodolite/kubernetes/slo/ExternalSloCheckerTest.kt b/theodolite/src/test/kotlin/rocks/theodolite/kubernetes/slo/ExternalSloCheckerTest.kt new file mode 100644 index 0000000000000000000000000000000000000000..1ea422c93a32e6ab360853b1b9f6e7532c3641d3 --- /dev/null +++ b/theodolite/src/test/kotlin/rocks/theodolite/kubernetes/slo/ExternalSloCheckerTest.kt @@ -0,0 +1,67 @@ +package rocks.theodolite.kubernetes.slo + +import com.fasterxml.jackson.databind.node.BooleanNode +import com.github.tomakehurst.wiremock.WireMockServer +import com.github.tomakehurst.wiremock.client.WireMock.* +import io.quarkus.test.junit.QuarkusTest +import org.junit.jupiter.api.AfterEach +import org.junit.jupiter.api.Assertions.* +import org.junit.jupiter.api.BeforeEach +import org.junit.jupiter.api.Test + +@QuarkusTest +internal class ExternalSloCheckerTest { + + private var wireMockServer: WireMockServer? = null + + @BeforeEach + fun start() { + wireMockServer = WireMockServer().also { + it.start() + } + } + + @AfterEach + fun stop() { + wireMockServer?.let { + it.stop() + } + } + + @Test + fun testExternalTrueResult() { + stubFor( + post(urlEqualTo("/")) + .willReturn( + aResponse() + .withJsonBody(BooleanNode.getTrue()) + ) + ) + + val sloChecker = ExternalSloChecker( + wireMockServer!!.baseUrl(), + mapOf() + ) + val result = sloChecker.evaluate(listOf()) + assertTrue(result) + } + + @Test + fun testExternalFalseResult() { + stubFor( + post(urlEqualTo("/")) + .willReturn( + aResponse() + .withJsonBody(BooleanNode.getFalse()) + ) + ) + + val sloChecker = ExternalSloChecker( + wireMockServer!!.baseUrl(), + mapOf() + ) + val result = sloChecker.evaluate(listOf()) + assertFalse(result) + } + +} \ No newline at end of file