github.com/Finschia/finschia-sdk@v0.49.1/x/mint/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  	sdk "github.com/Finschia/finschia-sdk/types"
    10  	grpctypes "github.com/Finschia/finschia-sdk/types/grpc"
    11  	minttypes "github.com/Finschia/finschia-sdk/x/mint/types"
    12  )
    13  
    14  func (s *IntegrationTestSuite) TestQueryGRPC() {
    15  	val := s.network.Validators[0]
    16  	baseURL := val.APIAddress
    17  	testCases := []struct {
    18  		name     string
    19  		url      string
    20  		headers  map[string]string
    21  		respType proto.Message
    22  		expected proto.Message
    23  	}{
    24  		{
    25  			"gRPC request params",
    26  			fmt.Sprintf("%s/cosmos/mint/v1beta1/params", baseURL),
    27  			map[string]string{},
    28  			&minttypes.QueryParamsResponse{},
    29  			&minttypes.QueryParamsResponse{
    30  				Params: minttypes.NewParams("stake", sdk.NewDecWithPrec(13, 2), sdk.NewDecWithPrec(100, 2),
    31  					sdk.NewDec(1), sdk.NewDecWithPrec(67, 2), 60*60*8766/5),
    32  			},
    33  		},
    34  		{
    35  			"gRPC request inflation",
    36  			fmt.Sprintf("%s/cosmos/mint/v1beta1/inflation", baseURL),
    37  			map[string]string{},
    38  			&minttypes.QueryInflationResponse{},
    39  			&minttypes.QueryInflationResponse{
    40  				Inflation: sdk.NewDec(1),
    41  			},
    42  		},
    43  		{
    44  			"gRPC request annual provisions",
    45  			fmt.Sprintf("%s/cosmos/mint/v1beta1/annual_provisions", baseURL),
    46  			map[string]string{
    47  				grpctypes.GRPCBlockHeightHeader: "1",
    48  			},
    49  			&minttypes.QueryAnnualProvisionsResponse{},
    50  			&minttypes.QueryAnnualProvisionsResponse{
    51  				AnnualProvisions: sdk.NewDec(500000000),
    52  			},
    53  		},
    54  	}
    55  	for _, tc := range testCases {
    56  		resp, err := testutil.GetRequestWithHeaders(tc.url, tc.headers)
    57  		s.Run(tc.name, func() {
    58  			s.Require().NoError(err)
    59  			s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(resp, tc.respType))
    60  			s.Require().Equal(tc.expected.String(), tc.respType.String())
    61  		})
    62  	}
    63  }