From ae9f0ed9e07802ff78a55c6dbf604b00fab44928 Mon Sep 17 00:00:00 2001 From: Hiram Chirino Date: Tue, 18 Mar 2025 14:09:37 -0400 Subject: [PATCH] Refactor the jaxrs tests to make it easier to add more later. Signed-off-by: Hiram Chirino --- .../io/roastedroot/proxywasm/jaxrs/App.java | 34 ---------------- .../proxywasm/jaxrs/ExampleResource.java | 22 ---------- .../proxywasm/jaxrs/ExampleResourceTest.java | 26 ------------ .../proxywasm/jaxrs/HttpHeadersResource.java | 14 +++++++ .../proxywasm/jaxrs/HttpHeadersTest.java | 40 +++++++++++++++++++ .../proxywasm/jaxrs/TestHelpers.java | 7 ++++ 6 files changed, 61 insertions(+), 82 deletions(-) delete mode 100644 proxy-wasm-jaxrs/src/test/java/io/roastedroot/proxywasm/jaxrs/App.java delete mode 100644 proxy-wasm-jaxrs/src/test/java/io/roastedroot/proxywasm/jaxrs/ExampleResource.java delete mode 100644 proxy-wasm-jaxrs/src/test/java/io/roastedroot/proxywasm/jaxrs/ExampleResourceTest.java create mode 100644 proxy-wasm-jaxrs/src/test/java/io/roastedroot/proxywasm/jaxrs/HttpHeadersResource.java create mode 100644 proxy-wasm-jaxrs/src/test/java/io/roastedroot/proxywasm/jaxrs/HttpHeadersTest.java create mode 100644 proxy-wasm-jaxrs/src/test/java/io/roastedroot/proxywasm/jaxrs/TestHelpers.java diff --git a/proxy-wasm-jaxrs/src/test/java/io/roastedroot/proxywasm/jaxrs/App.java b/proxy-wasm-jaxrs/src/test/java/io/roastedroot/proxywasm/jaxrs/App.java deleted file mode 100644 index fd8d574..0000000 --- a/proxy-wasm-jaxrs/src/test/java/io/roastedroot/proxywasm/jaxrs/App.java +++ /dev/null @@ -1,34 +0,0 @@ -package io.roastedroot.proxywasm.jaxrs; - -import com.dylibso.chicory.wasm.Parser; -import com.dylibso.chicory.wasm.WasmModule; -import io.roastedroot.proxywasm.StartException; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.enterprise.inject.Produces; -import java.nio.file.Path; - -@ApplicationScoped -public class App { - - private static final WasmModule httpHeadersModule = - Parser.parse( - Path.of("../proxy-wasm-java-host/src/test/go-examples/http_headers/main.wasm")); - - @Produces - public WasmPluginFactory createFoo() throws StartException { - return () -> - WasmPlugin.builder() - .withName("foo") - .withPluginConfig("{\"header\": \"x-wasm-header\", \"value\": \"foo\"}") - .build(httpHeadersModule); - } - - @Produces - public WasmPluginFactory createBar() throws StartException { - return () -> - WasmPlugin.builder() - .withName("bar") - .withPluginConfig("{\"header\": \"x-wasm-header\", \"value\": \"bar\"}") - .build(httpHeadersModule); - } -} diff --git a/proxy-wasm-jaxrs/src/test/java/io/roastedroot/proxywasm/jaxrs/ExampleResource.java b/proxy-wasm-jaxrs/src/test/java/io/roastedroot/proxywasm/jaxrs/ExampleResource.java deleted file mode 100644 index c07393b..0000000 --- a/proxy-wasm-jaxrs/src/test/java/io/roastedroot/proxywasm/jaxrs/ExampleResource.java +++ /dev/null @@ -1,22 +0,0 @@ -package io.roastedroot.proxywasm.jaxrs; - -import jakarta.ws.rs.GET; -import jakarta.ws.rs.Path; - -@Path("/example") -public class ExampleResource { - - @GET - @NamedWasmPlugin("bar") - @Path("/bar") - public String bar() { - return "bar"; - } - - @GET - @NamedWasmPlugin("foo") - @Path("/foo") - public String foo() { - return "foo"; - } -} diff --git a/proxy-wasm-jaxrs/src/test/java/io/roastedroot/proxywasm/jaxrs/ExampleResourceTest.java b/proxy-wasm-jaxrs/src/test/java/io/roastedroot/proxywasm/jaxrs/ExampleResourceTest.java deleted file mode 100644 index d5398b8..0000000 --- a/proxy-wasm-jaxrs/src/test/java/io/roastedroot/proxywasm/jaxrs/ExampleResourceTest.java +++ /dev/null @@ -1,26 +0,0 @@ -package io.roastedroot.proxywasm.jaxrs; - -import static io.restassured.RestAssured.given; - -import io.quarkus.test.junit.QuarkusTest; -import org.junit.jupiter.api.Test; - -@QuarkusTest -public class ExampleResourceTest { - - @Test - public void testFooBar() { - given().when() - .get("/example/foo") - .then() - .statusCode(200) - .header("x-proxy-wasm-go-sdk-example", "http_headers") - .header("x-wasm-header", "foo"); - given().when() - .get("/example/bar") - .then() - .statusCode(200) - .header("x-proxy-wasm-go-sdk-example", "http_headers") - .header("x-wasm-header", "bar"); - } -} diff --git a/proxy-wasm-jaxrs/src/test/java/io/roastedroot/proxywasm/jaxrs/HttpHeadersResource.java b/proxy-wasm-jaxrs/src/test/java/io/roastedroot/proxywasm/jaxrs/HttpHeadersResource.java new file mode 100644 index 0000000..711ee9b --- /dev/null +++ b/proxy-wasm-jaxrs/src/test/java/io/roastedroot/proxywasm/jaxrs/HttpHeadersResource.java @@ -0,0 +1,14 @@ +package io.roastedroot.proxywasm.jaxrs; + +import jakarta.ws.rs.GET; +import jakarta.ws.rs.Path; + +@Path("/http_headers") +public class HttpHeadersResource { + + @GET + @NamedWasmPlugin("http_headers") + public String get() { + return "hello world"; + } +} diff --git a/proxy-wasm-jaxrs/src/test/java/io/roastedroot/proxywasm/jaxrs/HttpHeadersTest.java b/proxy-wasm-jaxrs/src/test/java/io/roastedroot/proxywasm/jaxrs/HttpHeadersTest.java new file mode 100644 index 0000000..cd4bde6 --- /dev/null +++ b/proxy-wasm-jaxrs/src/test/java/io/roastedroot/proxywasm/jaxrs/HttpHeadersTest.java @@ -0,0 +1,40 @@ +package io.roastedroot.proxywasm.jaxrs; + +import static io.restassured.RestAssured.given; +import static io.roastedroot.proxywasm.jaxrs.TestHelpers.EXAMPLES_DIR; +import static org.hamcrest.Matchers.equalTo; + +import com.dylibso.chicory.wasm.Parser; +import io.quarkus.test.junit.QuarkusTest; +import io.roastedroot.proxywasm.StartException; +import jakarta.enterprise.inject.Produces; +import java.nio.file.Path; +import org.junit.jupiter.api.Test; + +@QuarkusTest +public class HttpHeadersTest { + + @Produces + public WasmPluginFactory create() throws StartException { + return () -> + WasmPlugin.builder() + .withName("http_headers") + .withPluginConfig("{\"header\": \"x-wasm-header\", \"value\": \"foo\"}") + .build( + Parser.parse( + Path.of( + EXAMPLES_DIR + + "/go-examples/http_headers/main.wasm"))); + } + + @Test + public void testRequest() { + given().when() + .get("/http_headers") + .then() + .statusCode(200) + .header("x-proxy-wasm-go-sdk-example", "http_headers") + .header("x-wasm-header", "foo") + .body(equalTo("hello world")); + } +} diff --git a/proxy-wasm-jaxrs/src/test/java/io/roastedroot/proxywasm/jaxrs/TestHelpers.java b/proxy-wasm-jaxrs/src/test/java/io/roastedroot/proxywasm/jaxrs/TestHelpers.java new file mode 100644 index 0000000..36f6709 --- /dev/null +++ b/proxy-wasm-jaxrs/src/test/java/io/roastedroot/proxywasm/jaxrs/TestHelpers.java @@ -0,0 +1,7 @@ +package io.roastedroot.proxywasm.jaxrs; + +public final class TestHelpers { + private TestHelpers() {} + + public static final String EXAMPLES_DIR = "../proxy-wasm-java-host/src/test"; +}