github.com/Finschia/finschia-sdk@v0.48.1/x/gov/types/keys_test.go (about) 1 package types 2 3 import ( 4 "testing" 5 "time" 6 7 "github.com/stretchr/testify/require" 8 9 "github.com/Finschia/finschia-sdk/crypto/keys/ed25519" 10 sdk "github.com/Finschia/finschia-sdk/types" 11 ) 12 13 var addr = sdk.AccAddress(ed25519.GenPrivKey().PubKey().Address()) 14 15 func TestProposalKeys(t *testing.T) { 16 // key proposal 17 key := ProposalKey(1) 18 proposalID := SplitProposalKey(key) 19 require.Equal(t, int(proposalID), 1) 20 21 // key active proposal queue 22 now := time.Now() 23 key = ActiveProposalQueueKey(3, now) 24 proposalID, expTime := SplitActiveProposalQueueKey(key) 25 require.Equal(t, int(proposalID), 3) 26 require.True(t, now.Equal(expTime)) 27 28 // key inactive proposal queue 29 key = InactiveProposalQueueKey(3, now) 30 proposalID, expTime = SplitInactiveProposalQueueKey(key) 31 require.Equal(t, int(proposalID), 3) 32 require.True(t, now.Equal(expTime)) 33 34 // invalid key 35 require.Panics(t, func() { SplitProposalKey([]byte("test")) }) 36 require.Panics(t, func() { SplitInactiveProposalQueueKey([]byte("test")) }) 37 } 38 39 func TestDepositKeys(t *testing.T) { 40 key := DepositsKey(2) 41 proposalID := SplitProposalKey(key) 42 require.Equal(t, int(proposalID), 2) 43 44 key = DepositKey(2, addr) 45 proposalID, depositorAddr := SplitKeyDeposit(key) 46 require.Equal(t, int(proposalID), 2) 47 require.Equal(t, addr, depositorAddr) 48 } 49 50 func TestVoteKeys(t *testing.T) { 51 key := VotesKey(2) 52 proposalID := SplitProposalKey(key) 53 require.Equal(t, int(proposalID), 2) 54 55 key = VoteKey(2, addr) 56 proposalID, voterAddr := SplitKeyDeposit(key) 57 require.Equal(t, int(proposalID), 2) 58 require.Equal(t, addr, voterAddr) 59 }