11package runtime_test
22
33import (
4- "context"
54 "testing"
65
6+ bankv1beta1 "cosmossdk.io/api/cosmos/bank/v1beta1"
7+ counterv1 "cosmossdk.io/api/cosmos/counter/v1"
78 "cosmossdk.io/log"
89 storetypes "cosmossdk.io/store/types"
910 "github.com/cosmos/cosmos-sdk/baseapp"
1011 codectypes "github.com/cosmos/cosmos-sdk/codec/types"
1112 "github.com/cosmos/cosmos-sdk/runtime"
13+ "github.com/cosmos/cosmos-sdk/testutil"
1214 counterkeeper "github.com/cosmos/cosmos-sdk/x/counter/keeper"
1315 countertypes "github.com/cosmos/cosmos-sdk/x/counter/types"
1416 "github.com/stretchr/testify/require"
@@ -23,20 +25,52 @@ func TestMsgRouterService(t *testing.T) {
2325 counterKeeper := counterkeeper .NewKeeper (runtime .NewEnvironment (storeService , log .NewNopLogger ()))
2426 countertypes .RegisterInterfaces (interfaceRegistry )
2527 countertypes .RegisterMsgServer (router , counterKeeper )
26- // countertypes.RegisterQueryServer(router, counterKeeper)
28+ countertypes .RegisterQueryServer (router , counterKeeper )
2729
2830 routerService := runtime .NewMsgRouterService (storeService , router )
31+ testCtx := testutil .DefaultContextWithDB (t , key , storetypes .NewTransientStoreKey ("transient_test" ))
2932
30- resp , err := routerService .InvokeUntyped (context .Background (), & countertypes.MsgIncreaseCounter {
31- Signer : "cosmos1" ,
32- Count : 42 ,
33+ t .Run ("invalid msg" , func (t * testing.T ) {
34+ _ , err := routerService .InvokeUntyped (testCtx .Ctx , & bankv1beta1.MsgSend {})
35+ require .ErrorContains (t , err , "could not find response type for message /cosmos.bank.v1beta1.MsgSend" )
36+ })
37+
38+ t .Run ("valid msg (proto v1)" , func (t * testing.T ) {
39+ resp , err := routerService .InvokeUntyped (testCtx .Ctx , & countertypes.MsgIncreaseCounter {
40+ Signer : "cosmos1" ,
41+ Count : 42 ,
42+ })
43+ require .NoError (t , err )
44+ require .NotNil (t , resp )
45+ })
46+
47+ t .Run ("valid msg (proto v2)" , func (t * testing.T ) {
48+ resp , err := routerService .InvokeUntyped (testCtx .Ctx , & counterv1.MsgIncreaseCounter {
49+ Signer : "cosmos1" ,
50+ Count : 42 ,
51+ })
52+ require .NoError (t , err )
53+ require .NotNil (t , resp )
54+ })
55+
56+ t .Run ("invalid query" , func (t * testing.T ) {
57+ err := routerService .InvokeTyped (testCtx .Ctx , & bankv1beta1.QueryBalanceRequest {}, & bankv1beta1.QueryBalanceResponse {})
58+ require .ErrorContains (t , err , "unknown message: /cosmos.bank.v1beta1.QueryBalanceRequest" )
59+ })
60+
61+ t .Run ("valid query (proto v1)" , func (t * testing.T ) {
62+ resp := & countertypes.QueryGetCountResponse {}
63+ err := routerService .InvokeTyped (testCtx .Ctx , & countertypes.QueryGetCountRequest {}, resp )
64+ require .NoError (t , err )
65+ require .NotNil (t , resp )
66+ require .Equal (t , & countertypes.QueryGetCountResponse {TotalCount : 42 }, resp )
67+ })
68+
69+ t .Run ("valid query (proto v2)" , func (t * testing.T ) {
70+ resp := & counterv1.QueryGetCountResponse {}
71+ err := routerService .InvokeTyped (testCtx .Ctx , & counterv1.QueryGetCountRequest {}, resp )
72+ require .NoError (t , err )
73+ require .NotNil (t , resp )
74+ require .Equal (t , & counterv1.QueryGetCountResponse {TotalCount : 42 }, resp )
3375 })
34- require .NoError (t , err )
35- require .NotNil (t , resp )
36-
37- resp = & countertypes.QueryGetCountResponse {}
38- err = routerService .InvokeTyped (context .Background (), & countertypes.QueryGetCountRequest {}, & countertypes.QueryGetCountResponse {})
39- require .NoError (t , err )
40- require .NotNil (t , resp )
41- require .Equal (t , & countertypes.QueryGetCountResponse {TotalCount : 42 }, resp )
4276}
0 commit comments