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 }