8
8
import io .quarkus .test .junit .mockito .InjectMock ;
9
9
import io .quarkus .test .security .TestSecurity ;
10
10
import org .junit .jupiter .api .Test ;
11
+ import org .lfenergy .compas .core .commons .model .ErrorMessage ;
12
+ import org .lfenergy .compas .core .commons .model .ErrorResponse ;
13
+ import org .lfenergy .compas .core .websocket .ErrorResponseDecoder ;
11
14
import org .lfenergy .compas .scl .extensions .model .SclFileType ;
12
15
import org .lfenergy .compas .scl .validator .model .ValidationError ;
13
16
import org .lfenergy .compas .scl .validator .rest .v1 .model .SclValidateRequest ;
28
31
29
32
import static org .junit .jupiter .api .Assertions .assertEquals ;
30
33
import static org .junit .jupiter .api .Assertions .assertNotNull ;
34
+ import static org .lfenergy .compas .core .commons .exception .CompasErrorCode .WEBSOCKET_DECODER_ERROR_CODE ;
31
35
import static org .mockito .Mockito .*;
32
36
33
37
@ QuarkusTest
34
38
@ TestSecurity (user = "test-user" )
35
39
class SclValidatorServerEndpointTest {
36
40
private static final LinkedBlockingDeque <ValidationError > validationErrors = new LinkedBlockingDeque <>();
41
+ private static final LinkedBlockingDeque <ErrorMessage > errorQueue = new LinkedBlockingDeque <>();
37
42
38
43
@ InjectMock
39
44
private SclValidatorService sclValidatorService ;
@@ -60,11 +65,32 @@ void validate_WhenCalled_ThenExpectedResponseIsRetrieved() throws Exception {
60
65
}
61
66
}
62
67
68
+ @ Test
69
+ void validate_WhenCalledWithInvalidText_ThenExceptionThrown () throws Exception {
70
+ try (Session session = ContainerProvider .getWebSocketContainer ().connectToServer (ErrorClient .class , uri )) {
71
+ session .getAsyncRemote ().sendText ("Invalid Message" );
72
+
73
+ var errorMessage = errorQueue .poll (10 , TimeUnit .SECONDS );
74
+ assertEquals (WEBSOCKET_DECODER_ERROR_CODE , errorMessage .getCode ());
75
+ assertEquals (0 , errorQueue .size ());
76
+ }
77
+ }
78
+
63
79
@ ClientEndpoint (decoders = SclValidateResponseDecoder .class )
64
80
private static class Client {
65
81
@ OnMessage
66
82
public void onMessage (SclValidateResponse response ) {
67
83
validationErrors .addAll (response .getValidationErrorList ());
68
84
}
69
85
}
86
+
87
+ @ ClientEndpoint (decoders = ErrorResponseDecoder .class )
88
+ static class ErrorClient {
89
+ @ OnMessage
90
+ public void onMessage (ErrorResponse response ) {
91
+ if (response .getErrorMessages ().size () > 0 ) {
92
+ errorQueue .addAll (response .getErrorMessages ());
93
+ }
94
+ }
95
+ }
70
96
}
0 commit comments