0g-chain/x/kavadist/legacy/v0_16/migrate_test.go

152 lines
3.8 KiB
Go
Raw Normal View History

package v0_16
import (
"testing"
"time"
"github.com/cosmos/cosmos-sdk/codec"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/stretchr/testify/suite"
tmtime "github.com/tendermint/tendermint/types/time"
app "github.com/kava-labs/kava/app"
v015kavadist "github.com/kava-labs/kava/x/kavadist/legacy/v0_15"
v016kavadist "github.com/kava-labs/kava/x/kavadist/types"
)
type migrateTestSuite struct {
suite.Suite
addresses []sdk.AccAddress
v15genstate v015kavadist.GenesisState
cdc codec.Codec
legacyCdc *codec.LegacyAmino
}
func (s *migrateTestSuite) SetupTest() {
app.SetSDKConfig()
s.v15genstate = v015kavadist.GenesisState{
Params: v015kavadist.Params{},
PreviousBlockTime: tmtime.Canonical(time.Unix(1, 0)),
}
config := app.MakeEncodingConfig()
s.cdc = config.Marshaler
legacyCodec := codec.NewLegacyAmino()
s.legacyCdc = legacyCodec
_, accAddresses := app.GeneratePrivKeyAddressPairs(10)
s.addresses = accAddresses
}
func (s *migrateTestSuite) TestMigrate_JSON() {
// Migrate v15 kavadist to v16
data := `{
"params": {
"active": true,
"periods": [
{
"end": "2021-06-01T14:00:00Z",
"inflation": "1.000000000000000000",
"start": "2020-06-01T14:00:00Z"
},
{
"end": "2022-06-01T14:00:00Z",
"inflation": "1.000000002293273137",
"start": "2021-06-01T14:00:00Z"
},
{
"end": "2023-06-01T14:00:00Z",
"inflation": "1.000000001167363430",
"start": "2022-06-01T14:00:00Z"
},
{
"end": "2024-06-01T14:00:00Z",
"inflation": "1.000000000782997609",
"start": "2023-06-01T14:00:00Z"
}
]
},
"previous_block_time": "2021-11-05T21:13:12.85608847Z"
}`
err := s.legacyCdc.UnmarshalJSON([]byte(data), &s.v15genstate)
s.Require().NoError(err)
genstate := Migrate(s.v15genstate)
// Compare expect v16 kavadist json with migrated json
actual := s.cdc.MustMarshalJSON(genstate)
expected := `{
"params": {
"active": true,
"periods": [
{
"start": "2020-06-01T14:00:00Z",
"end": "2021-06-01T14:00:00Z",
"inflation": "1.000000000000000000"
},
{
"start": "2021-06-01T14:00:00Z",
"end": "2022-06-01T14:00:00Z",
"inflation": "1.000000002293273137"
},
{
"start": "2022-06-01T14:00:00Z",
"end": "2023-06-01T14:00:00Z",
"inflation": "1.000000001167363430"
},
{
"start": "2023-06-01T14:00:00Z",
"end": "2024-06-01T14:00:00Z",
"inflation": "1.000000000782997609"
}
]
},
"previous_block_time": "2021-11-05T21:13:12.856088470Z"
}`
s.Require().NoError(err)
s.Require().JSONEq(string(expected), string(actual))
}
func (s *migrateTestSuite) TestMigrate_Params() {
params := v015kavadist.Params{
Active: true,
Periods: v015kavadist.Periods{
{
Start: time.Date(2020, time.March, 1, 1, 0, 0, 0, time.UTC),
End: time.Date(2021, time.March, 1, 1, 0, 0, 0, time.UTC),
Inflation: sdk.MustNewDecFromStr("0.1"),
},
{
Start: time.Date(2010, time.March, 1, 1, 0, 0, 0, time.UTC),
End: time.Date(2011, time.March, 2, 1, 0, 0, 0, time.UTC),
Inflation: sdk.MustNewDecFromStr("0.01"),
},
},
}
expected := v016kavadist.Params{
Active: true,
Periods: []v016kavadist.Period{
{
Start: time.Date(2020, time.March, 1, 1, 0, 0, 0, time.UTC),
End: time.Date(2021, time.March, 1, 1, 0, 0, 0, time.UTC),
Inflation: sdk.MustNewDecFromStr("0.1"),
},
{
Start: time.Date(2010, time.March, 1, 1, 0, 0, 0, time.UTC),
End: time.Date(2011, time.March, 2, 1, 0, 0, 0, time.UTC),
Inflation: sdk.MustNewDecFromStr("0.01"),
},
},
}
s.v15genstate.Params = params
genState := Migrate(s.v15genstate)
s.Require().Equal(expected, genState.Params)
}
func TestMigrateTestSuite(t *testing.T) {
suite.Run(t, new(migrateTestSuite))
}