0g-chain/x/kavadist/legacy/v0_16/migrate_test.go
Ruaridh ffef832d45
Upgrade to sdk v0.44.5 and add IBC (#1106)
- Upgrade cosmos-sdk to v0.44.5 from v0.39.2
- Add Legacy Tx Endpoint for backwards compatibility
- Add IBC v1.2.3 Support

Co-authored-by: DracoLi <draco@dracoli.com>
Co-authored-by: drklee3 <derrick@dlee.dev>
Co-authored-by: denalimarsh <denalimarsh@gmail.com>
Co-authored-by: Draco Li <draco@kava.io>
Co-authored-by: Nick DeLuca <nickdeluca08@gmail.com>
Co-authored-by: Kevin Davis <karzak@users.noreply.github.com>
Co-authored-by: Denali Marsh <denali@kava.io>
2022-01-07 17:39:27 -07:00

152 lines
3.8 KiB
Go

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))
}