github.com/Finschia/finschia-sdk@v0.48.1/simapp/genesis_account_test.go (about) 1 package simapp_test 2 3 import ( 4 "testing" 5 "time" 6 7 "github.com/Finschia/finschia-sdk/crypto/keys/secp256k1" 8 "github.com/Finschia/finschia-sdk/simapp" 9 sdk "github.com/Finschia/finschia-sdk/types" 10 authtypes "github.com/Finschia/finschia-sdk/x/auth/types" 11 12 "github.com/Finschia/ostracon/crypto" 13 "github.com/stretchr/testify/require" 14 ) 15 16 func TestSimGenesisAccountValidate(t *testing.T) { 17 pubkey := secp256k1.GenPrivKey().PubKey() 18 addr := sdk.AccAddress(pubkey.Address()) 19 20 vestingStart := time.Now().UTC() 21 22 coins := sdk.NewCoins(sdk.NewInt64Coin("test", 1000)) 23 baseAcc := authtypes.NewBaseAccount(addr, pubkey, 0, 0) 24 25 testCases := []struct { 26 name string 27 sga simapp.SimGenesisAccount 28 wantErr bool 29 }{ 30 { 31 "valid basic account", 32 simapp.SimGenesisAccount{ 33 BaseAccount: baseAcc, 34 }, 35 false, 36 }, 37 { 38 "invalid basic account with mismatching address/pubkey", 39 simapp.SimGenesisAccount{ 40 BaseAccount: authtypes.NewBaseAccount(addr, secp256k1.GenPrivKey().PubKey(), 0, 0), 41 }, 42 true, 43 }, 44 { 45 "valid basic account with module name", 46 simapp.SimGenesisAccount{ 47 BaseAccount: authtypes.NewBaseAccount(sdk.AccAddress(crypto.AddressHash([]byte("testmod"))), nil, 0, 0), 48 ModuleName: "testmod", 49 }, 50 false, 51 }, 52 { 53 "valid basic account with invalid module name/pubkey pair", 54 simapp.SimGenesisAccount{ 55 BaseAccount: baseAcc, 56 ModuleName: "testmod", 57 }, 58 true, 59 }, 60 { 61 "valid basic account with valid vesting attributes", 62 simapp.SimGenesisAccount{ 63 BaseAccount: baseAcc, 64 OriginalVesting: coins, 65 StartTime: vestingStart.Unix(), 66 EndTime: vestingStart.Add(1 * time.Hour).Unix(), 67 }, 68 false, 69 }, 70 { 71 "valid basic account with invalid vesting end time", 72 simapp.SimGenesisAccount{ 73 BaseAccount: baseAcc, 74 OriginalVesting: coins, 75 StartTime: vestingStart.Add(2 * time.Hour).Unix(), 76 EndTime: vestingStart.Add(1 * time.Hour).Unix(), 77 }, 78 true, 79 }, 80 } 81 82 for _, tc := range testCases { 83 tc := tc 84 t.Run(tc.name, func(t *testing.T) { 85 require.Equal(t, tc.wantErr, tc.sga.Validate() != nil) 86 }) 87 } 88 }