@@ -1248,7 +1248,11 @@ func TestIDHandling(t *testing.T) {
12481248 expect interface {}
12491249 expectErr bool
12501250 }{
1251- {`{"id":"8116d306-56cc-4637-9dd7-39ce1548a5a0","jsonrpc":"2.0","method":"eth_blockNumber","params":[]}` , "8116d306-56cc-4637-9dd7-39ce1548a5a0" , false },
1251+ {
1252+ `{"id":"8116d306-56cc-4637-9dd7-39ce1548a5a0","jsonrpc":"2.0","method":"eth_blockNumber","params":[]}` ,
1253+ "8116d306-56cc-4637-9dd7-39ce1548a5a0" ,
1254+ false ,
1255+ },
12521256 {`{"id":1234,"jsonrpc":"2.0","method":"eth_blockNumber","params":[]}` , float64 (1234 ), false },
12531257 {`{"id":null,"jsonrpc":"2.0","method":"eth_blockNumber","params":[]}` , nil , false },
12541258 {`{"id":1234.0,"jsonrpc":"2.0","method":"eth_blockNumber","params":[]}` , 1234.0 , false },
@@ -1711,3 +1715,37 @@ func TestNewCustomClient(t *testing.T) {
17111715 require .Equal (t , 13 , n )
17121716 require .Equal (t , int32 (13 ), serverHandler .n )
17131717}
1718+
1719+ func TestReverseCallWithCustomMethodName (t * testing.T ) {
1720+ // setup server
1721+
1722+ rpcServer := NewServer (WithMethodNameFormatter (func (namespace , method string ) string { return namespace + "_" + method }))
1723+ rpcServer .Register ("Server" , & RawParamHandler {})
1724+
1725+ // httptest stuff
1726+ testServ := httptest .NewServer (rpcServer )
1727+ defer testServ .Close ()
1728+
1729+ // setup client
1730+
1731+ var client struct {
1732+ Call func (ctx context.Context , ps RawParams ) error `rpc_method:"Server_Call"`
1733+ }
1734+ closer , err := NewMergeClient (context .Background (), "ws://" + testServ .Listener .Addr ().String (), "Server" , []interface {}{
1735+ & client ,
1736+ }, nil )
1737+ require .NoError (t , err )
1738+
1739+ // do the call!
1740+
1741+ e := client .Call (context .Background (), []byte (`{"I": 1}` ))
1742+ require .NoError (t , e )
1743+
1744+ closer ()
1745+ }
1746+
1747+ type MethodTransformedHandler struct {}
1748+
1749+ func (h * RawParamHandler ) CallSomethingInSnakeCase (ctx context.Context , v int ) (int , error ) {
1750+ return v + 1 , nil
1751+ }
0 commit comments