1515import java .net .URI ;
1616import java .time .ZonedDateTime ;
1717import static org .java_websocket .framing .CloseFrame .GOING_AWAY ;
18+ import static org .java_websocket .framing .CloseFrame .NORMAL ;
1819import static org .mockito .ArgumentMatchers .anyBoolean ;
1920import static org .mockito .ArgumentMatchers .anyString ;
2021import static org .mockito .ArgumentMatchers .eq ;
@@ -44,6 +45,21 @@ void onResponse(WebsocketMockServer server) throws InterruptedException{
4445
4546 server .send (TestUtils .getAllResourceContent ("api/hermes/reconnect_ok.json" ));
4647
48+ var expected = ReconnectResponse .builder ()
49+ .id ("4ae4865b-cedc-4755-8335-0560b7d05341" )
50+ .timestamp (ZonedDateTime .parse ("2025-01-02T03:04:05.123456789Z" ))
51+ .reconnect (ReconnectResponse .Reconnect .builder ().build ())
52+ .build ();
53+ verify (listener , timeout (MESSAGE_TIMEOUT )).onWebSocketMessage (expected );
54+ verify (listener ).onWebSocketClosed (eq (tested ), eq (GOING_AWAY ), anyString (), anyBoolean ());
55+ }
56+
57+ @ RepeatedIfExceptionsTest (repeats = 5 , exceptions = ConditionTimeoutException .class )
58+ void onResponseWithReconnectUrl (WebsocketMockServer server ) throws InterruptedException {
59+ tested .connectBlocking ();
60+
61+ server .send (TestUtils .getAllResourceContent ("api/hermes/reconnect_ok_url.json" ));
62+
4763 var expected = ReconnectResponse .builder ()
4864 .id ("4ae4865b-cedc-4755-8335-0560b7d05341" )
4965 .timestamp (ZonedDateTime .parse ("2025-01-02T03:04:05.123456789Z" ))
@@ -52,7 +68,7 @@ void onResponse(WebsocketMockServer server) throws InterruptedException{
5268 .build ())
5369 .build ();
5470 verify (listener , timeout (MESSAGE_TIMEOUT )).onWebSocketMessage (expected );
55- verify (listener ).onWebSocketClosed (eq (tested ), eq (GOING_AWAY ), anyString (), anyBoolean ());
71+ verify (listener ).onWebSocketClosed (eq (tested ), eq (NORMAL ), anyString (), anyBoolean ());
5672 }
5773
5874 @ BeforeEach
0 commit comments