github.com/Finschia/finschia-sdk@v0.48.1/x/params/client/testutil/grpc.go (about)

     1  package testutil
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/gogo/protobuf/proto"
     7  
     8  	"github.com/Finschia/finschia-sdk/testutil"
     9  	"github.com/Finschia/finschia-sdk/x/params/types/proposal"
    10  )
    11  
    12  func (s *IntegrationTestSuite) TestQueryParamsGRPC() {
    13  	val := s.network.Validators[0]
    14  	baseURL := val.APIAddress
    15  
    16  	testCases := []struct {
    17  		name     string
    18  		url      string
    19  		headers  map[string]string
    20  		expErr   bool
    21  		respType proto.Message
    22  		expected proto.Message
    23  	}{
    24  		{
    25  			"with no subspace, key",
    26  			fmt.Sprintf("%s/cosmos/params/v1beta1/params?subspace=%s&key=%s", baseURL, "", ""),
    27  			map[string]string{},
    28  			true,
    29  			&proposal.QueryParamsResponse{},
    30  			&proposal.QueryParamsResponse{
    31  				Param: proposal.ParamChange{
    32  					Subspace: "staking",
    33  					Key:      "MaxValidators",
    34  					Value:    "100",
    35  				},
    36  			},
    37  		},
    38  		{
    39  			"with wrong subspace",
    40  			fmt.Sprintf("%s/cosmos/params/v1beta1/params?subspace=%s&key=%s", baseURL, "wrongSubspace", "MaxValidators"),
    41  			map[string]string{},
    42  			true,
    43  			&proposal.QueryParamsResponse{},
    44  			&proposal.QueryParamsResponse{
    45  				Param: proposal.ParamChange{
    46  					Subspace: "staking",
    47  					Key:      "MaxValidators",
    48  					Value:    "100",
    49  				},
    50  			},
    51  		},
    52  		{
    53  			"with wrong key",
    54  			fmt.Sprintf("%s/cosmos/params/v1beta1/params?subspace=%s&key=%s", baseURL, "staking", "wrongKey"),
    55  			map[string]string{},
    56  			false,
    57  			&proposal.QueryParamsResponse{},
    58  			&proposal.QueryParamsResponse{
    59  				Param: proposal.ParamChange{
    60  					Subspace: "staking",
    61  					Key:      "wrongKey",
    62  					Value:    "",
    63  				},
    64  			},
    65  		},
    66  		{
    67  			"params",
    68  			fmt.Sprintf("%s/cosmos/params/v1beta1/params?subspace=%s&key=%s", baseURL, "staking", "MaxValidators"),
    69  			map[string]string{},
    70  			false,
    71  			&proposal.QueryParamsResponse{},
    72  			&proposal.QueryParamsResponse{
    73  				Param: proposal.ParamChange{
    74  					Subspace: "staking",
    75  					Key:      "MaxValidators",
    76  					Value:    "100",
    77  				},
    78  			},
    79  		},
    80  	}
    81  
    82  	for _, tc := range testCases {
    83  		tc := tc
    84  		s.Run(tc.name, func() {
    85  			resp, err := testutil.GetRequestWithHeaders(tc.url, tc.headers)
    86  			s.Require().NoError(err)
    87  
    88  			err = val.ClientCtx.Codec.UnmarshalJSON(resp, tc.respType)
    89  
    90  			if tc.expErr {
    91  				s.Require().Error(err)
    92  			} else {
    93  				s.Require().NoError(err)
    94  				s.Require().Equal(tc.expected.String(), tc.respType.String())
    95  			}
    96  		})
    97  	}
    98  }