github.com/Finschia/finschia-sdk@v0.49.1/x/staking/simulation/decoder_test.go (about) 1 package simulation_test 2 3 import ( 4 "fmt" 5 "testing" 6 "time" 7 8 "github.com/stretchr/testify/require" 9 10 "github.com/Finschia/finschia-sdk/crypto/keys/ed25519" 11 "github.com/Finschia/finschia-sdk/simapp" 12 sdk "github.com/Finschia/finschia-sdk/types" 13 "github.com/Finschia/finschia-sdk/types/kv" 14 "github.com/Finschia/finschia-sdk/x/staking/simulation" 15 "github.com/Finschia/finschia-sdk/x/staking/types" 16 ) 17 18 var ( 19 delPk1 = ed25519.GenPrivKey().PubKey() 20 delAddr1 = sdk.AccAddress(delPk1.Address()) 21 valAddr1 = sdk.ValAddress(delPk1.Address()) 22 ) 23 24 func TestDecodeStore(t *testing.T) { 25 cdc := simapp.MakeTestEncodingConfig().Marshaler 26 dec := simulation.NewDecodeStore(cdc) 27 bondTime := time.Now().UTC() 28 29 val, err := types.NewValidator(valAddr1, delPk1, types.NewDescription("test", "test", "test", "test", "test")) 30 require.NoError(t, err) 31 del := types.NewDelegation(delAddr1, valAddr1, sdk.OneDec()) 32 ubd := types.NewUnbondingDelegation(delAddr1, valAddr1, 15, bondTime, sdk.OneInt()) 33 red := types.NewRedelegation(delAddr1, valAddr1, valAddr1, 12, bondTime, sdk.OneInt(), sdk.OneDec()) 34 35 kvPairs := kv.Pairs{ 36 Pairs: []kv.Pair{ 37 {Key: types.LastTotalPowerKey, Value: cdc.MustMarshal(&sdk.IntProto{Int: sdk.OneInt()})}, 38 {Key: types.GetValidatorKey(valAddr1), Value: cdc.MustMarshal(&val)}, 39 {Key: types.LastValidatorPowerKey, Value: valAddr1.Bytes()}, 40 {Key: types.GetDelegationKey(delAddr1, valAddr1), Value: cdc.MustMarshal(&del)}, 41 {Key: types.GetUBDKey(delAddr1, valAddr1), Value: cdc.MustMarshal(&ubd)}, 42 {Key: types.GetREDKey(delAddr1, valAddr1, valAddr1), Value: cdc.MustMarshal(&red)}, 43 {Key: []byte{0x99}, Value: []byte{0x99}}, 44 }, 45 } 46 47 tests := []struct { 48 name string 49 expectedLog string 50 }{ 51 {"LastTotalPower", fmt.Sprintf("%v\n%v", sdk.OneInt(), sdk.OneInt())}, 52 {"Validator", fmt.Sprintf("%v\n%v", val, val)}, 53 {"LastValidatorPower/ValidatorsByConsAddr/ValidatorsByPowerIndex", fmt.Sprintf("%v\n%v", valAddr1, valAddr1)}, 54 {"Delegation", fmt.Sprintf("%v\n%v", del, del)}, 55 {"UnbondingDelegation", fmt.Sprintf("%v\n%v", ubd, ubd)}, 56 {"Redelegation", fmt.Sprintf("%v\n%v", red, red)}, 57 {"other", ""}, 58 } 59 for i, tt := range tests { 60 t.Run(tt.name, func(t *testing.T) { 61 switch i { 62 case len(tests) - 1: 63 require.Panics(t, func() { dec(kvPairs.Pairs[i], kvPairs.Pairs[i]) }, tt.name) 64 default: 65 require.Equal(t, tt.expectedLog, dec(kvPairs.Pairs[i], kvPairs.Pairs[i]), tt.name) 66 } 67 }) 68 } 69 }