github.com/Finschia/finschia-sdk@v0.49.1/x/auth/simulation/decoder_test.go (about) 1 package simulation_test 2 3 import ( 4 "fmt" 5 "testing" 6 7 gogotypes "github.com/gogo/protobuf/types" 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/auth/simulation" 15 "github.com/Finschia/finschia-sdk/x/auth/types" 16 ) 17 18 var ( 19 delPk1 = ed25519.GenPrivKey().PubKey() 20 delAddr1 = sdk.AccAddress(delPk1.Address()) 21 ) 22 23 func TestDecodeStore(t *testing.T) { 24 app := simapp.Setup(false) 25 cdc := simapp.MakeTestEncodingConfig().Marshaler 26 acc := types.NewBaseAccountWithAddress(delAddr1) 27 dec := simulation.NewDecodeStore(app.AccountKeeper) 28 29 accBz, err := app.AccountKeeper.MarshalAccount(acc) 30 require.NoError(t, err) 31 32 globalAccNumber := gogotypes.UInt64Value{Value: 10} 33 34 kvPairs := kv.Pairs{ 35 Pairs: []kv.Pair{ 36 { 37 Key: types.AddressStoreKey(delAddr1), 38 Value: accBz, 39 }, 40 { 41 Key: types.GlobalAccountNumberKey, 42 Value: cdc.MustMarshal(&globalAccNumber), 43 }, 44 { 45 Key: []byte{0x99}, 46 Value: []byte{0x99}, 47 }, 48 }, 49 } 50 tests := []struct { 51 name string 52 expectedLog string 53 }{ 54 {"Account", fmt.Sprintf("%v\n%v", acc, acc)}, 55 {"GlobalAccNumber", fmt.Sprintf("GlobalAccNumberA: %d\nGlobalAccNumberB: %d", globalAccNumber, globalAccNumber)}, 56 {"other", ""}, 57 } 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 }