github.com/Finschia/finschia-sdk@v0.49.1/x/feegrant/simulation/decoder_test.go (about) 1 package simulation_test 2 3 import ( 4 "fmt" 5 "testing" 6 7 "github.com/stretchr/testify/require" 8 9 "github.com/Finschia/finschia-sdk/crypto/keys/ed25519" 10 "github.com/Finschia/finschia-sdk/simapp" 11 sdk "github.com/Finschia/finschia-sdk/types" 12 "github.com/Finschia/finschia-sdk/types/kv" 13 "github.com/Finschia/finschia-sdk/x/feegrant" 14 "github.com/Finschia/finschia-sdk/x/feegrant/simulation" 15 ) 16 17 var ( 18 granterPk = ed25519.GenPrivKey().PubKey() 19 granterAddr = sdk.AccAddress(granterPk.Address()) 20 granteeAddr = sdk.AccAddress(granterPk.Address()) 21 ) 22 23 func TestDecodeStore(t *testing.T) { 24 cdc := simapp.MakeTestEncodingConfig().Marshaler 25 dec := simulation.NewDecodeStore(cdc) 26 27 grant, err := feegrant.NewGrant(granterAddr, granteeAddr, &feegrant.BasicAllowance{ 28 SpendLimit: sdk.NewCoins(sdk.NewCoin("foo", sdk.NewInt(100))), 29 }) 30 31 require.NoError(t, err) 32 33 grantBz, err := cdc.Marshal(&grant) 34 require.NoError(t, err) 35 36 kvPairs := kv.Pairs{ 37 Pairs: []kv.Pair{ 38 {Key: feegrant.FeeAllowanceKeyPrefix, Value: grantBz}, 39 {Key: []byte{0x99}, Value: []byte{0x99}}, 40 }, 41 } 42 43 tests := []struct { 44 name string 45 expectedLog string 46 }{ 47 {"Grant", fmt.Sprintf("%v\n%v", grant, grant)}, 48 {"other", ""}, 49 } 50 51 for i, tt := range tests { 52 t.Run(tt.name, func(t *testing.T) { 53 switch i { 54 case len(tests) - 1: 55 require.Panics(t, func() { dec(kvPairs.Pairs[i], kvPairs.Pairs[i]) }, tt.name) 56 default: 57 require.Equal(t, tt.expectedLog, dec(kvPairs.Pairs[i], kvPairs.Pairs[i]), tt.name) 58 } 59 }) 60 } 61 }