7
7
import static io .quarkus .websockets .next .test .telemetry .MetricsAsserter .assertServerConnectionOpenedTotal ;
8
8
import static io .quarkus .websockets .next .test .telemetry .MetricsAsserter .assertServerConnectionOpeningFailedTotal ;
9
9
import static io .quarkus .websockets .next .test .telemetry .MetricsAsserter .stringToBytes ;
10
+ import static org .junit .jupiter .api .Assertions .assertEquals ;
10
11
import static org .junit .jupiter .api .Assertions .assertTrue ;
11
12
12
13
import java .net .URI ;
22
23
23
24
import io .quarkus .test .QuarkusUnitTest ;
24
25
import io .quarkus .test .common .http .TestHTTPResource ;
26
+ import io .quarkus .websockets .next .WebSocketClientConnection ;
25
27
import io .quarkus .websockets .next .WebSocketConnector ;
26
28
import io .quarkus .websockets .next .test .telemetry .endpoints .onerror .ErroneousClient_NoOnError ;
29
+ import io .quarkus .websockets .next .test .telemetry .endpoints .onerror .ErroneousClient_OnConnectError ;
27
30
import io .quarkus .websockets .next .test .telemetry .endpoints .onerror .ErroneousClient_OverloadedOnError ;
28
31
import io .quarkus .websockets .next .test .telemetry .endpoints .onerror .ErroneousServerEndpoint_OnClose ;
29
32
import io .quarkus .websockets .next .test .telemetry .endpoints .onerror .ErroneousServerEndpoint_OverriddenOnError ;
@@ -43,6 +46,9 @@ public class MicrometerWebSocketsOnErrorTest {
43
46
@ Inject
44
47
WebSocketConnector <ErroneousClient_OverloadedOnError > erroneousClientConnector_OverloadedOnErr ;
45
48
49
+ @ Inject
50
+ WebSocketConnector <ErroneousClient_OnConnectError > onConnectErrorClient ;
51
+
46
52
@ TestHTTPResource ("/" )
47
53
URI baseUri ;
48
54
@@ -255,4 +261,22 @@ public void testServerEndpoint_HttpUpgradeFailed() {
255
261
.body (assertServerConnectionOpeningFailedTotal (path , 1 ));
256
262
});
257
263
}
264
+
265
+ @ Test
266
+ public void testServerEndpoint_OnConnectionError () {
267
+ try {
268
+ WebSocketClientConnection connection = onConnectErrorClient .baseUri (baseUri ).connectAndAwait ();
269
+ connection .sendTextAndAwait ("Hold the Line" );
270
+ // assertFalse(connection.isOpen(),
271
+ // "Runtime exception happened on server side and connection is still open");
272
+ } catch (Exception e ) {
273
+ // TODO evaluate exact message received
274
+ assertEquals ("Crafted exception - Websocket failed to open" , e .getMessage ());
275
+ }
276
+
277
+ Awaitility .await ().atMost (Duration .ofSeconds (5 )).untilAsserted (() -> {
278
+ getMetrics ()
279
+ .body (assertServerConnectionOpeningFailedTotal ("/on-connect-error" , 1 ));
280
+ });
281
+ }
258
282
}
0 commit comments