diff --git a/framework/kotlin-functional/build.gradle b/framework/kotlin-functional/build.gradle index e7598194..f3a7b04d 100644 --- a/framework/kotlin-functional/build.gradle +++ b/framework/kotlin-functional/build.gradle @@ -9,7 +9,7 @@ plugins { dependencies { implementation(enforcedPlatform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)) - implementation("org.springframework.boot:spring-boot-starter") + implementation("org.springframework.boot:spring-boot-starter-webflux") implementation("org.jetbrains.kotlin:kotlin-reflect") implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") @@ -18,3 +18,7 @@ dependencies { appTestImplementation(project(":aot-smoke-test-support")) appTestImplementation("org.awaitility:awaitility:4.2.0") } + +aotSmokeTest { + webApplication = true +} diff --git a/framework/kotlin-functional/src/appTest/java/com/example/functional/FunctionalApplicationAotTests.java b/framework/kotlin-functional/src/appTest/java/com/example/functional/FunctionalApplicationAotTests.java index 6068c939..514dd299 100644 --- a/framework/kotlin-functional/src/appTest/java/com/example/functional/FunctionalApplicationAotTests.java +++ b/framework/kotlin-functional/src/appTest/java/com/example/functional/FunctionalApplicationAotTests.java @@ -7,6 +7,7 @@ import org.junit.jupiter.api.Test; import org.springframework.aot.smoketest.support.assertj.AssertableOutput; import org.springframework.aot.smoketest.support.junit.ApplicationTest; +import org.springframework.test.web.reactive.server.WebTestClient; import static org.assertj.core.api.Assertions.assertThat; @@ -20,4 +21,14 @@ public class FunctionalApplicationAotTests { }); } + @Test + void endpointsAreConfigured(WebTestClient client) { + client.get() + .exchange() + .expectStatus() + .isOk() + .expectBody() + .consumeWith((result) -> assertThat(new String(result.getResponseBodyContent())).isEqualTo("hi!")); + } + } diff --git a/framework/kotlin-functional/src/main/kotlin/com/example/functional/FunctionalApplication.kt b/framework/kotlin-functional/src/main/kotlin/com/example/functional/FunctionalApplication.kt index 98b31e99..32fd9f02 100644 --- a/framework/kotlin-functional/src/main/kotlin/com/example/functional/FunctionalApplication.kt +++ b/framework/kotlin-functional/src/main/kotlin/com/example/functional/FunctionalApplication.kt @@ -4,6 +4,8 @@ import org.springframework.boot.CommandLineRunner import org.springframework.boot.autoconfigure.SpringBootApplication import org.springframework.boot.runApplication import org.springframework.context.support.beans +import org.springframework.web.reactive.function.server.ServerResponse +import org.springframework.web.reactive.function.server.router @SpringBootApplication class FunctionalApplication @@ -12,10 +14,15 @@ fun main(args: Array) { runApplication(*args) { addInitializers(beans { bean() + bean(::endpoints) }) } } +fun endpoints() = router { + GET("/") { ServerResponse.ok().bodyValue("hi!") } +} + class Foo : CommandLineRunner { override fun run(vararg args: String?) { println("Hello world!")