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  }