github.com/gnolang/gno@v0.0.0-20240520182011-228e9d0192ce/tm2/pkg/sdk/auth/keeper_test.go (about) 1 package auth 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/require" 7 8 "github.com/gnolang/gno/tm2/pkg/crypto" 9 ) 10 11 func TestAccountMapperGetSet(t *testing.T) { 12 t.Parallel() 13 14 env := setupTestEnv() 15 addr := crypto.AddressFromPreimage([]byte("some-address")) 16 17 // no account before its created 18 acc := env.acck.GetAccount(env.ctx, addr) 19 require.Nil(t, acc) 20 21 // create account and check default values 22 acc = env.acck.NewAccountWithAddress(env.ctx, addr) 23 require.NotNil(t, acc) 24 require.Equal(t, addr, acc.GetAddress()) 25 require.EqualValues(t, nil, acc.GetPubKey()) 26 require.EqualValues(t, 0, acc.GetSequence()) 27 28 // NewAccount doesn't call Set, so it's still nil 29 require.Nil(t, env.acck.GetAccount(env.ctx, addr)) 30 31 // set some values on the account and save it 32 newSequence := uint64(20) 33 acc.SetSequence(newSequence) 34 env.acck.SetAccount(env.ctx, acc) 35 36 // check the new values 37 acc = env.acck.GetAccount(env.ctx, addr) 38 require.NotNil(t, acc) 39 require.Equal(t, newSequence, acc.GetSequence()) 40 } 41 42 func TestAccountMapperRemoveAccount(t *testing.T) { 43 t.Parallel() 44 45 env := setupTestEnv() 46 addr1 := crypto.AddressFromPreimage([]byte("addr1")) 47 addr2 := crypto.AddressFromPreimage([]byte("addr2")) 48 49 // create accounts 50 acc1 := env.acck.NewAccountWithAddress(env.ctx, addr1) 51 acc2 := env.acck.NewAccountWithAddress(env.ctx, addr2) 52 53 accSeq1 := uint64(20) 54 accSeq2 := uint64(40) 55 56 acc1.SetSequence(accSeq1) 57 acc2.SetSequence(accSeq2) 58 env.acck.SetAccount(env.ctx, acc1) 59 env.acck.SetAccount(env.ctx, acc2) 60 61 acc1 = env.acck.GetAccount(env.ctx, addr1) 62 require.NotNil(t, acc1) 63 require.Equal(t, accSeq1, acc1.GetSequence()) 64 65 // remove one account 66 env.acck.RemoveAccount(env.ctx, acc1) 67 acc1 = env.acck.GetAccount(env.ctx, addr1) 68 require.Nil(t, acc1) 69 70 acc2 = env.acck.GetAccount(env.ctx, addr2) 71 require.NotNil(t, acc2) 72 require.Equal(t, accSeq2, acc2.GetSequence()) 73 }