47 lines
1.1 KiB
Go
47 lines
1.1 KiB
Go
package simulation
|
|
|
|
import (
|
|
"encoding/json"
|
|
"math/rand"
|
|
"testing"
|
|
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
"github.com/cosmos/cosmos-sdk/x/bank"
|
|
"github.com/cosmos/cosmos-sdk/x/mock"
|
|
"github.com/cosmos/cosmos-sdk/x/mock/simulation"
|
|
)
|
|
|
|
func TestBankWithRandomMessages(t *testing.T) {
|
|
mapp := mock.NewApp()
|
|
|
|
bank.RegisterCodec(mapp.Cdc)
|
|
mapper := mapp.AccountKeeper
|
|
bankKeeper := bank.NewBaseKeeper(mapper)
|
|
mapp.Router().AddRoute("bank", bank.NewHandler(bankKeeper))
|
|
|
|
err := mapp.CompleteSetup()
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
appStateFn := func(r *rand.Rand, accs []simulation.Account) json.RawMessage {
|
|
simulation.RandomSetGenesis(r, mapp, accs, []string{"stake"})
|
|
return json.RawMessage("{}")
|
|
}
|
|
|
|
simulation.Simulate(
|
|
t, mapp.BaseApp, appStateFn,
|
|
[]simulation.WeightedOperation{
|
|
{1, SingleInputSendTx(mapper)},
|
|
{1, SingleInputSendMsg(mapper, bankKeeper)},
|
|
},
|
|
[]simulation.RandSetup{},
|
|
[]simulation.Invariant{
|
|
NonnegativeBalanceInvariant(mapper),
|
|
TotalCoinsInvariant(mapper, func() sdk.Coins { return mapp.TotalCoinsSupply }),
|
|
},
|
|
30, 60,
|
|
false,
|
|
)
|
|
}
|