github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/cosmos-sdk/x/auth/keeper/account_test.go (about) 1 package keeper_test 2 3 import ( 4 "fmt" 5 "testing" 6 7 ethcmn "github.com/ethereum/go-ethereum/common" 8 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 9 "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/x/auth/exported" 10 abci "github.com/fibonacci-chain/fbc/libs/tendermint/abci/types" 11 "github.com/stretchr/testify/require" 12 ) 13 14 func Test_IterateAccounts(t *testing.T) { 15 var cases = []struct { 16 num int 17 }{ 18 {0}, 19 {1}, 20 {100}, 21 } 22 23 for i, c := range cases { 24 t.Run(fmt.Sprintf("test-%d", i), func(t *testing.T) { 25 app, ctx := createTestAppWithHeight(false, 10) 26 27 addrs := make(map[ethcmn.Address]struct{}, c.num) 28 for i := 0; i < c.num; i++ { 29 arr := []byte{byte((i & 0xFF0000) >> 16), byte((i & 0xFF00) >> 8), byte(i & 0xFF)} 30 addr := sdk.AccAddress(arr) 31 addrs[ethcmn.BytesToAddress(arr)] = struct{}{} 32 acc := app.AccountKeeper.NewAccountWithAddress(ctx, addr) 33 app.AccountKeeper.SetAccount(ctx, acc) 34 } 35 app.Commit(abci.RequestCommit{}) 36 37 count := 0 38 iAddrs := make(map[ethcmn.Address]struct{}, c.num) 39 app.AccountKeeper.IterateAccounts(ctx, func(acc exported.Account) bool { 40 addr := ethcmn.BytesToAddress(acc.GetAddress()) 41 if _, ok := addrs[addr]; ok { 42 iAddrs[addr] = struct{}{} 43 count++ 44 } 45 return false 46 }) 47 require.EqualValues(t, addrs, iAddrs) 48 require.Equal(t, len(iAddrs), count) 49 require.Equal(t, c.num, count) 50 }) 51 } 52 }