github.com/cosmos/cosmos-sdk@v0.50.10/x/group/internal/orm/sequence_test.go (about) 1 package orm 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 "github.com/stretchr/testify/require" 8 9 storetypes "cosmossdk.io/store/types" 10 11 "github.com/cosmos/cosmos-sdk/x/group/errors" 12 ) 13 14 func TestSequenceUniqueConstraint(t *testing.T) { 15 ctx := NewMockContext() 16 store := ctx.KVStore(storetypes.NewKVStoreKey("test")) 17 18 seq := NewSequence(0x1) 19 err := seq.InitVal(store, 2) 20 require.NoError(t, err) 21 err = seq.InitVal(store, 3) 22 require.True(t, errors.ErrORMUniqueConstraint.Is(err)) 23 } 24 25 func TestSequenceIncrements(t *testing.T) { 26 ctx := NewMockContext() 27 store := ctx.KVStore(storetypes.NewKVStoreKey("test")) 28 29 seq := NewSequence(0x1) 30 var i uint64 31 for i = 1; i < 10; i++ { 32 autoID := seq.NextVal(store) 33 assert.Equal(t, i, autoID) 34 assert.Equal(t, i, seq.CurVal(store)) 35 } 36 37 seq = NewSequence(0x1) 38 assert.Equal(t, uint64(10), seq.PeekNextVal(store)) 39 assert.Equal(t, uint64(9), seq.CurVal(store)) 40 }