@@ -160,10 +160,34 @@ public async Task ShouldHandle_Request_WithNullParameters()
160
160
var collection = new HandlerCollection { shutdownHandler } ;
161
161
var mediator = new LspRequestRouter ( collection , _testLoggerFactory , _handlerMatcherCollection , new Serializer ( ) ) ;
162
162
163
- object @params = null ;
163
+ JToken @params = JValue . CreateNull ( ) ; // If the "params" property present but null, this will be JTokenType.Null.
164
164
165
165
var id = Guid . NewGuid ( ) . ToString ( ) ;
166
- var request = new Request ( id , GeneralNames . Shutdown , JValue . CreateNull ( ) ) ;
166
+ var request = new Request ( id , GeneralNames . Shutdown , @params ) ;
167
+
168
+ await mediator . RouteRequest ( mediator . GetDescriptor ( request ) , request ) ;
169
+
170
+ Assert . True ( wasShutDown , "WasShutDown" ) ;
171
+ }
172
+
173
+ [ Fact ]
174
+ public async Task ShouldHandle_Request_WithMissingParameters ( )
175
+ {
176
+ bool wasShutDown = false ;
177
+
178
+ ShutdownHandler shutdownHandler = new ShutdownHandler ( ) ;
179
+ shutdownHandler . Shutdown += shutdownRequested =>
180
+ {
181
+ wasShutDown = true ;
182
+ } ;
183
+
184
+ var collection = new HandlerCollection { shutdownHandler } ;
185
+ var mediator = new LspRequestRouter ( collection , _testLoggerFactory , _handlerMatcherCollection , new Serializer ( ) ) ;
186
+
187
+ JToken @params = null ; // If the "params" property was missing entirely, this will be null.
188
+
189
+ var id = Guid . NewGuid ( ) . ToString ( ) ;
190
+ var request = new Request ( id , GeneralNames . Shutdown , @params ) ;
167
191
168
192
await mediator . RouteRequest ( mediator . GetDescriptor ( request ) , request ) ;
169
193
0 commit comments