diff --git a/microprofile/messaging/health/pom.xml b/microprofile/messaging/health/pom.xml
index 1ec6191dfd8..0b6b2646f69 100644
--- a/microprofile/messaging/health/pom.xml
+++ b/microprofile/messaging/health/pom.xml
@@ -55,21 +55,6 @@
junit-jupiter-params
test
-
- io.helidon.reactive.webclient
- helidon-reactive-webclient
- test
-
-
- io.helidon.reactive.media
- helidon-reactive-media-jsonp
- test
-
-
- io.helidon.reactive.media
- helidon-reactive-media-jsonb
- test
-
io.helidon.microprofile.tests
helidon-microprofile-tests-junit5
diff --git a/microprofile/messaging/health/src/test/java/io/helidon/microprofile/messaging/health/MessagingHealthTest.java b/microprofile/messaging/health/src/test/java/io/helidon/microprofile/messaging/health/MessagingHealthTest.java
index 7734b2a6876..9f0218c7841 100644
--- a/microprofile/messaging/health/src/test/java/io/helidon/microprofile/messaging/health/MessagingHealthTest.java
+++ b/microprofile/messaging/health/src/test/java/io/helidon/microprofile/messaging/health/MessagingHealthTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2020, 2022 Oracle and/or its affiliates.
+ * Copyright (c) 2020, 2023 Oracle and/or its affiliates.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -30,14 +30,15 @@
import io.helidon.microprofile.tests.junit5.AddExtensions;
import io.helidon.microprofile.tests.junit5.DisableDiscovery;
import io.helidon.microprofile.tests.junit5.HelidonTest;
-import io.helidon.reactive.media.jsonp.JsonpSupport;
-import io.helidon.reactive.webclient.WebClient;
import jakarta.enterprise.inject.se.SeContainer;
import jakarta.enterprise.inject.spi.CDI;
import jakarta.json.JsonObject;
import jakarta.json.JsonValue;
+import jakarta.ws.rs.client.WebTarget;
+import jakarta.ws.rs.core.Response;
import org.eclipse.microprofile.health.HealthCheckResponse;
+import org.glassfish.jersey.ext.cdi1x.internal.CdiComponentProvider;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.opentest4j.AssertionFailedError;
@@ -78,33 +79,28 @@
@AddExtension(JaxRsCdiExtension.class),
@AddExtension(HealthCdiExtension.class),
@AddExtension(MessagingCdiExtension.class),
+ @AddExtension(CdiComponentProvider.class)
})
public class MessagingHealthTest {
private static final String ERROR_MESSAGE = "BOOM!";
- private WebClient client;
-
@BeforeEach
void setUp() {
ServerCdiExtension server = CDI.current().select(ServerCdiExtension.class).get();
- client = WebClient.builder()
- .baseUri("http://localhost:" + server.port())
- .addReader(JsonpSupport.reader())
- .build();
}
@Test
- void alivenessWithErrorSignal(SeContainer container) {
+ void alivenessWithErrorSignal(WebTarget webTarget, SeContainer container) {
TestMessagingBean bean = container.select(TestMessagingBean.class).get();
- assertMessagingHealth(UP, Map.of(
+ assertMessagingHealth(webTarget, UP, Map.of(
CHANNEL_1, UP,
CHANNEL_2, UP
));
bean.getEmitter1().fail(new RuntimeException(ERROR_MESSAGE));
- assertMessagingHealth(DOWN, Map.of(
+ assertMessagingHealth(webTarget, DOWN, Map.of(
CHANNEL_1, DOWN,
CHANNEL_2, UP
));
@@ -112,7 +108,7 @@ void alivenessWithErrorSignal(SeContainer container) {
equalTo(ERROR_MESSAGE));
bean.getEmitter2().fail(new RuntimeException(ERROR_MESSAGE));
- assertMessagingHealth(DOWN, Map.of(
+ assertMessagingHealth(webTarget, DOWN, Map.of(
CHANNEL_1, DOWN,
CHANNEL_2, DOWN
));
@@ -121,10 +117,10 @@ void alivenessWithErrorSignal(SeContainer container) {
}
@Test
- void alivenessWithCancelSignal(SeContainer container) {
+ void alivenessWithCancelSignal(WebTarget webTarget, SeContainer container) {
TestMessagingBean bean = container.select(TestMessagingBean.class).get();
- assertMessagingHealth(UP, Map.of(
+ assertMessagingHealth(webTarget, UP, Map.of(
CHANNEL_1, UP,
CHANNEL_2, UP
));
@@ -132,40 +128,35 @@ void alivenessWithCancelSignal(SeContainer container) {
assertThat(bean.getEmitter2().isCancelled(), equalTo(Boolean.FALSE));
bean.getSubscriber1().cancel();
- assertMessagingHealth(DOWN, Map.of(
+ assertMessagingHealth(webTarget, DOWN, Map.of(
CHANNEL_1, DOWN,
CHANNEL_2, UP
));
assertThat(bean.getEmitter1().isCancelled(), equalTo(Boolean.TRUE));
bean.getSubscriber2().cancel();
- assertMessagingHealth(DOWN, Map.of(
+ assertMessagingHealth(webTarget, DOWN, Map.of(
CHANNEL_1, DOWN,
CHANNEL_2, DOWN
));
assertThat(bean.getEmitter2().isCancelled(), equalTo(Boolean.TRUE));
}
- private void assertMessagingHealth(HealthCheckResponse.Status rootState, Map channels) {
- JsonObject messaging = getHealthCheck("messaging");
+ private void assertMessagingHealth(WebTarget webTarget, HealthCheckResponse.Status rootState, Map channels) {
+ JsonObject messaging = getHealthCheck(webTarget, "messaging");
assertThat(messaging.getString("status"), equalTo(rootState.name()));
JsonObject data = messaging.getJsonObject("data");
channels.forEach((name, state) -> assertThat(data.getString(name), equalTo(state.name())));
}
- private JsonObject getHealthCheck(String checkName) {
- return client.get()
- .path("/health")
- .submit()
- .await(5, TimeUnit.SECONDS)
- .content()
- .as(JsonObject.class)
- .await(500, TimeUnit.MILLISECONDS)
- .getValue("/checks")
- .asJsonArray().stream()
- .map(JsonValue::asJsonObject)
- .filter(check -> check.getString("name").equals(checkName))
- .findFirst()
- .orElseThrow(() -> new AssertionFailedError("Health check 'messaging' is missing!"));
+ private JsonObject getHealthCheck(WebTarget webTarget, String checkName) {
+ Response response = webTarget.path("/health").request().get();
+ JsonObject jsonObject = response.readEntity(JsonObject.class);
+ return jsonObject.getValue("/checks")
+ .asJsonArray().stream()
+ .map(JsonValue::asJsonObject)
+ .filter(check -> check.getString("name").equals(checkName))
+ .findFirst()
+ .orElseThrow(() -> new AssertionFailedError("Health check 'messaging' is missing!"));
}
}