github.com/Finschia/finschia-sdk@v0.48.1/x/params/simulation/operations_test.go (about)

     1  package simulation_test
     2  
     3  import (
     4  	"fmt"
     5  	"math/rand"
     6  	"testing"
     7  
     8  	"github.com/stretchr/testify/require"
     9  	tmproto "github.com/tendermint/tendermint/proto/tendermint/types"
    10  
    11  	sdk "github.com/Finschia/finschia-sdk/types"
    12  	simtypes "github.com/Finschia/finschia-sdk/types/simulation"
    13  	"github.com/Finschia/finschia-sdk/x/params/simulation"
    14  	"github.com/Finschia/finschia-sdk/x/params/types/proposal"
    15  )
    16  
    17  type MockParamChange struct {
    18  	n int
    19  }
    20  
    21  func (pc MockParamChange) Subspace() string {
    22  	return fmt.Sprintf("test-Subspace%d", pc.n)
    23  }
    24  
    25  func (pc MockParamChange) Key() string {
    26  	return fmt.Sprintf("test-Key%d", pc.n)
    27  }
    28  
    29  func (pc MockParamChange) ComposedKey() string {
    30  	return fmt.Sprintf("test-ComposedKey%d", pc.n)
    31  }
    32  
    33  func (pc MockParamChange) SimValue() simtypes.SimValFn {
    34  	return func(r *rand.Rand) string {
    35  		return fmt.Sprintf("test-value %d%d ", pc.n, int64(simtypes.RandIntBetween(r, 10, 1000)))
    36  	}
    37  }
    38  
    39  // make sure that the MockParamChange satisfied the ParamChange interface
    40  var _ simtypes.ParamChange = MockParamChange{}
    41  
    42  func TestSimulateParamChangeProposalContent(t *testing.T) {
    43  	s := rand.NewSource(1)
    44  	r := rand.New(s)
    45  
    46  	ctx := sdk.NewContext(nil, tmproto.Header{}, true, nil)
    47  	accounts := simtypes.RandomAccounts(r, 3)
    48  	paramChangePool := []simtypes.ParamChange{MockParamChange{1}, MockParamChange{2}, MockParamChange{3}}
    49  
    50  	// execute operation
    51  	op := simulation.SimulateParamChangeProposalContent(paramChangePool)
    52  	content := op(r, ctx, accounts)
    53  
    54  	require.Equal(t, "desc from SimulateParamChangeProposalContent-0. Random short desc: IivHSlcxgdXhhuTSkuxK", content.GetDescription())
    55  	require.Equal(t, "title from SimulateParamChangeProposalContent-0", content.GetTitle())
    56  	require.Equal(t, "params", content.ProposalRoute())
    57  	require.Equal(t, "ParameterChange", content.ProposalType())
    58  
    59  	pcp, ok := content.(*proposal.ParameterChangeProposal)
    60  	require.True(t, ok)
    61  
    62  	require.Equal(t, "test-Key2", pcp.Changes[0].GetKey())
    63  	require.Equal(t, "test-value 2791 ", pcp.Changes[0].GetValue())
    64  	require.Equal(t, "test-Subspace2", pcp.Changes[0].GetSubspace())
    65  }