github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/cosmos-sdk/x/auth/simulation/decoder_test.go (about) 1 package simulation 2 3 import ( 4 "fmt" 5 "testing" 6 7 "github.com/stretchr/testify/require" 8 9 "github.com/fibonacci-chain/fbc/libs/tendermint/crypto/ed25519" 10 tmkv "github.com/fibonacci-chain/fbc/libs/tendermint/libs/kv" 11 12 "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/codec" 13 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 14 "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/x/auth/types" 15 ) 16 17 var ( 18 delPk1 = ed25519.GenPrivKey().PubKey() 19 delAddr1 = sdk.AccAddress(delPk1.Address()) 20 ) 21 22 func makeTestCodec() (cdc *codec.Codec) { 23 cdc = codec.New() 24 sdk.RegisterCodec(cdc) 25 codec.RegisterCrypto(cdc) 26 types.RegisterCodec(cdc) 27 return 28 } 29 30 func TestDecodeStore(t *testing.T) { 31 cdc := makeTestCodec() 32 acc := types.NewBaseAccountWithAddress(delAddr1) 33 globalAccNumber := uint64(10) 34 35 kvPairs := tmkv.Pairs{ 36 tmkv.Pair{Key: types.AddressStoreKey(delAddr1), Value: cdc.MustMarshalBinaryBare(acc)}, 37 tmkv.Pair{Key: types.GlobalAccountNumberKey, Value: cdc.MustMarshalBinaryLengthPrefixed(globalAccNumber)}, 38 tmkv.Pair{Key: []byte{0x99}, Value: []byte{0x99}}, 39 } 40 tests := []struct { 41 name string 42 expectedLog string 43 }{ 44 {"Account", fmt.Sprintf("%v\n%v", acc, acc)}, 45 {"GlobalAccNumber", fmt.Sprintf("GlobalAccNumberA: %d\nGlobalAccNumberB: %d", globalAccNumber, globalAccNumber)}, 46 {"other", ""}, 47 } 48 49 for i, tt := range tests { 50 i, tt := i, tt 51 t.Run(tt.name, func(t *testing.T) { 52 switch i { 53 case len(tests) - 1: 54 require.Panics(t, func() { DecodeStore(cdc, kvPairs[i], kvPairs[i]) }, tt.name) 55 default: 56 require.Equal(t, tt.expectedLog, DecodeStore(cdc, kvPairs[i], kvPairs[i]), tt.name) 57 } 58 }) 59 } 60 }