2020-07-18 09:19:00 -07:00
|
|
|
package simulation_test
|
|
|
|
|
|
|
|
import (
|
|
|
|
"math/rand"
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
"github.com/stretchr/testify/require"
|
2020-08-14 10:58:53 -07:00
|
|
|
tmproto "github.com/tendermint/tendermint/proto/tendermint/types"
|
2020-07-18 09:19:00 -07:00
|
|
|
|
|
|
|
"github.com/cosmos/cosmos-sdk/simapp"
|
|
|
|
simappparams "github.com/cosmos/cosmos-sdk/simapp/params"
|
|
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
|
|
simtypes "github.com/cosmos/cosmos-sdk/types/simulation"
|
|
|
|
"github.com/cosmos/cosmos-sdk/x/distribution/simulation"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestProposalContents(t *testing.T) {
|
|
|
|
app := simapp.Setup(false)
|
2020-08-14 10:58:53 -07:00
|
|
|
ctx := app.BaseApp.NewContext(false, tmproto.Header{})
|
2020-07-18 09:19:00 -07:00
|
|
|
|
|
|
|
// initialize parameters
|
|
|
|
s := rand.NewSource(1)
|
|
|
|
r := rand.New(s)
|
|
|
|
|
|
|
|
accounts := simtypes.RandomAccounts(r, 3)
|
|
|
|
|
|
|
|
// execute ProposalContents function
|
|
|
|
weightedProposalContent := simulation.ProposalContents(app.DistrKeeper)
|
|
|
|
require.Len(t, weightedProposalContent, 1)
|
|
|
|
|
|
|
|
w0 := weightedProposalContent[0]
|
|
|
|
|
|
|
|
// tests w0 interface:
|
|
|
|
require.Equal(t, simulation.OpWeightSubmitCommunitySpendProposal, w0.AppParamsKey())
|
|
|
|
require.Equal(t, simappparams.DefaultWeightTextProposal, w0.DefaultWeight())
|
|
|
|
|
|
|
|
amount := sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(1)), sdk.NewCoin("atoken", sdk.NewInt(2)))
|
|
|
|
|
|
|
|
feePool := app.DistrKeeper.GetFeePool(ctx)
|
|
|
|
feePool.CommunityPool = sdk.NewDecCoinsFromCoins(amount...)
|
|
|
|
app.DistrKeeper.SetFeePool(ctx, feePool)
|
|
|
|
|
|
|
|
content := w0.ContentSimulatorFn()(r, ctx, accounts)
|
|
|
|
|
|
|
|
require.Equal(t, "sTxPjfweXhSUkMhPjMaxKlMIJMOXcnQfyzeOcbWwNbeHVIkPZBSpYuLyYggwexjxusrBqDOTtGTOWeLrQKjLxzIivHSlcxgdXhhu", content.GetDescription())
|
|
|
|
require.Equal(t, "xKGLwQvuyN", content.GetTitle())
|
|
|
|
require.Equal(t, "distribution", content.ProposalRoute())
|
|
|
|
require.Equal(t, "CommunityPoolSpend", content.ProposalType())
|
|
|
|
}
|