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