@@ -114,5 +114,59 @@ public async Task GIVEN_RequestWithVoidResponse_WHEN_SystemMulticall_THEN_Should
114114 Mock . Get ( _requestHandler )
115115 . Verify ( x => x . SendRequest < IReadOnlyList < object > > ( It . Is < MultiCall > ( r => r != null ) ) , Times . Once ( ) ) ;
116116 }
117+
118+ [ Fact ]
119+ public async Task GIVEN_RequestWithNonJsonResponse_WHEN_SystemMulticall_THEN_ShouldPassMultiCallRequestToHandler ( )
120+ {
121+ var jsonResponse = new JsonRpcResponse < IReadOnlyList < object > >
122+ {
123+ Result = new List < object >
124+ {
125+ ""
126+ } . AsReadOnly ( ) ,
127+ Error = null ,
128+ Id = "Id" ,
129+ JsonRpc = "JsonRpc"
130+ } ;
131+ var methods = new JsonRpcRequest [ ] { new TellActive ( ) } ;
132+
133+ Mock . Get ( _requestHandler )
134+ . Setup ( x => x . SendRequest < IReadOnlyList < object > > ( It . IsAny < JsonRpcRequest > ( ) ) )
135+ . ReturnsAsync ( jsonResponse ) ;
136+
137+ var result = await _target . SystemMulticall ( methods ) ;
138+
139+ result [ 0 ] . Should ( ) . BeOfType < JsonRpcError > ( ) ;
140+
141+ Mock . Get ( _requestHandler )
142+ . Verify ( x => x . SendRequest < IReadOnlyList < object > > ( It . Is < MultiCall > ( r => r != null ) ) , Times . Once ( ) ) ;
143+ }
144+
145+ [ Fact ]
146+ public async Task GIVEN_RequestWithErrorResponse_WHEN_SystemMulticall_THEN_ShouldPassMultiCallRequestToHandler ( )
147+ {
148+ var jsonResponse = new JsonRpcResponse < IReadOnlyList < object > >
149+ {
150+ Result = new List < object >
151+ {
152+ JsonDocument . Parse ( "{\" code\" :-32600,\" message\" :\" Invalid Request\" ,\" customKey\" :\" customValue\" }" ) . RootElement ,
153+ } . AsReadOnly ( ) ,
154+ Error = null ,
155+ Id = "Id" ,
156+ JsonRpc = "JsonRpc"
157+ } ;
158+ var methods = new JsonRpcRequest [ ] { new TellActive ( ) } ;
159+
160+ Mock . Get ( _requestHandler )
161+ . Setup ( x => x . SendRequest < IReadOnlyList < object > > ( It . IsAny < JsonRpcRequest > ( ) ) )
162+ . ReturnsAsync ( jsonResponse ) ;
163+
164+ var result = await _target . SystemMulticall ( methods ) ;
165+
166+ result [ 0 ] . Should ( ) . BeOfType < JsonRpcError > ( ) ;
167+
168+ Mock . Get ( _requestHandler )
169+ . Verify ( x => x . SendRequest < IReadOnlyList < object > > ( It . Is < MultiCall > ( r => r != null ) ) , Times . Once ( ) ) ;
170+ }
117171 }
118172}
0 commit comments