github.com/lino-network/lino@v0.6.11/testsuites/ctx.go (about) 1 package testsuites 2 3 import ( 4 "time" 5 6 "github.com/cosmos/cosmos-sdk/store" 7 sdk "github.com/cosmos/cosmos-sdk/types" 8 "github.com/stretchr/testify/suite" 9 abci "github.com/tendermint/tendermint/abci/types" 10 "github.com/tendermint/tendermint/libs/log" 11 dbm "github.com/tendermint/tm-db" 12 ) 13 14 type CtxTestSuite struct { 15 suite.Suite 16 ms sdk.CommitMultiStore 17 height int64 18 time time.Time 19 Ctx sdk.Context 20 } 21 22 func (suite *CtxTestSuite) SetupCtx(height int64, t time.Time, keys ...*sdk.KVStoreKey) { 23 db := dbm.NewMemDB() 24 ms := store.NewCommitMultiStore(db) 25 for _, key := range keys { 26 ms.MountStoreWithDB(key, sdk.StoreTypeIAVL, db) 27 } 28 err := ms.LoadLatestVersion() 29 suite.Require().Nil(err) 30 suite.ms = ms 31 suite.Ctx = sdk.NewContext( 32 ms, abci.Header{ChainID: "Lino", Height: height, Time: t}, false, log.NewNopLogger()) 33 suite.height = height 34 suite.time = t 35 } 36 37 func (suite *CtxTestSuite) NextBlock(t time.Time) { 38 suite.Ctx = sdk.NewContext( 39 suite.ms, abci.Header{ 40 ChainID: "Lino", Height: suite.height + 1, Time: t}, false, log.NewNopLogger()) 41 suite.time = t 42 }