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  }