github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/cosmos-sdk/x/auth/keeper/keeper_test.go (about)

     1  package keeper_test
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/require"
     7  
     8  	sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types"
     9  	"github.com/fibonacci-chain/fbc/libs/cosmos-sdk/x/auth/types"
    10  )
    11  
    12  func TestAccountMapperGetSet(t *testing.T) {
    13  	app, ctx := createTestApp(true)
    14  	addr := sdk.AccAddress([]byte("some-address"))
    15  
    16  	// no account before its created
    17  	acc := app.AccountKeeper.GetAccount(ctx, addr)
    18  	require.Nil(t, acc)
    19  
    20  	// create account and check default values
    21  	acc = app.AccountKeeper.NewAccountWithAddress(ctx, addr)
    22  	require.NotNil(t, acc)
    23  	require.Equal(t, addr, acc.GetAddress())
    24  	require.EqualValues(t, nil, acc.GetPubKey())
    25  	require.EqualValues(t, 0, acc.GetSequence())
    26  
    27  	// NewAccount doesn't call Set, so it's still nil
    28  	require.Nil(t, app.AccountKeeper.GetAccount(ctx, addr))
    29  
    30  	// set some values on the account and save it
    31  	newSequence := uint64(20)
    32  	acc.SetSequence(newSequence)
    33  	app.AccountKeeper.SetAccount(ctx, acc)
    34  
    35  	// check the new values
    36  	acc = app.AccountKeeper.GetAccount(ctx, addr)
    37  	require.NotNil(t, acc)
    38  	require.Equal(t, newSequence, acc.GetSequence())
    39  }
    40  
    41  func TestAccountMapperRemoveAccount(t *testing.T) {
    42  	app, ctx := createTestApp(true)
    43  	addr1 := sdk.AccAddress([]byte("addr1"))
    44  	addr2 := sdk.AccAddress([]byte("addr2"))
    45  
    46  	// create accounts
    47  	acc1 := app.AccountKeeper.NewAccountWithAddress(ctx, addr1)
    48  	acc2 := app.AccountKeeper.NewAccountWithAddress(ctx, addr2)
    49  
    50  	accSeq1 := uint64(20)
    51  	accSeq2 := uint64(40)
    52  
    53  	acc1.SetSequence(accSeq1)
    54  	acc2.SetSequence(accSeq2)
    55  	app.AccountKeeper.SetAccount(ctx, acc1)
    56  	app.AccountKeeper.SetAccount(ctx, acc2)
    57  
    58  	acc1 = app.AccountKeeper.GetAccount(ctx, addr1)
    59  	require.NotNil(t, acc1)
    60  	require.Equal(t, accSeq1, acc1.GetSequence())
    61  
    62  	// remove one account
    63  	app.AccountKeeper.RemoveAccount(ctx, acc1)
    64  	acc1 = app.AccountKeeper.GetAccount(ctx, addr1)
    65  	require.Nil(t, acc1)
    66  
    67  	acc2 = app.AccountKeeper.GetAccount(ctx, addr2)
    68  	require.NotNil(t, acc2)
    69  	require.Equal(t, accSeq2, acc2.GetSequence())
    70  }
    71  
    72  func TestGetSetParams(t *testing.T) {
    73  	app, ctx := createTestApp(true)
    74  	params := types.DefaultParams()
    75  
    76  	app.AccountKeeper.SetParams(ctx, params)
    77  
    78  	actualParams := app.AccountKeeper.GetParams(ctx)
    79  	require.Equal(t, params, actualParams)
    80  }