github.com/Finschia/finschia-sdk@v0.48.1/x/params/keeper/grpc_query_test.go (about) 1 package keeper_test 2 3 import ( 4 "fmt" 5 6 sdk "github.com/Finschia/finschia-sdk/types" 7 "github.com/Finschia/finschia-sdk/x/params/types" 8 "github.com/Finschia/finschia-sdk/x/params/types/proposal" 9 ) 10 11 func (suite *KeeperTestSuite) TestGRPCQueryParams() { 12 var ( 13 req *proposal.QueryParamsRequest 14 expValue string 15 space types.Subspace 16 ) 17 key := []byte("key") 18 19 testCases := []struct { 20 msg string 21 malleate func() 22 expPass bool 23 }{ 24 { 25 "empty request", 26 func() { 27 req = &proposal.QueryParamsRequest{} 28 }, 29 false, 30 }, 31 { 32 "invalid request with subspace not found", 33 func() { 34 req = &proposal.QueryParamsRequest{Subspace: "test"} 35 }, 36 false, 37 }, 38 { 39 "invalid request with subspace and key not found", 40 func() { 41 req = &proposal.QueryParamsRequest{Subspace: "test", Key: "key"} 42 }, 43 false, 44 }, 45 { 46 "success", 47 func() { 48 space = suite.app.ParamsKeeper.Subspace("test"). 49 WithKeyTable(types.NewKeyTable(types.NewParamSetPair(key, paramJSON{}, validateNoOp))) 50 req = &proposal.QueryParamsRequest{Subspace: "test", Key: "key"} 51 expValue = "" 52 }, 53 true, 54 }, 55 { 56 "update value success", 57 func() { 58 err := space.Update(suite.ctx, key, []byte(`{"param1":"10241024"}`)) 59 suite.Require().NoError(err) 60 req = &proposal.QueryParamsRequest{Subspace: "test", Key: "key"} 61 expValue = `{"param1":"10241024"}` 62 }, 63 true, 64 }, 65 } 66 67 suite.SetupTest() 68 ctx := sdk.WrapSDKContext(suite.ctx) 69 70 for _, tc := range testCases { 71 suite.Run(fmt.Sprintf("Case %s", tc.msg), func() { 72 tc.malleate() 73 74 res, err := suite.queryClient.Params(ctx, req) 75 76 if tc.expPass { 77 suite.Require().NoError(err) 78 suite.Require().NotNil(res) 79 suite.Require().Equal(expValue, res.Param.Value) 80 } else { 81 suite.Require().Error(err) 82 suite.Require().Nil(res) 83 } 84 }) 85 } 86 }