Files
grafana/pkg/util/xorm/sequence_test.go
Peter Štibraný 9858e40a02 Spanner: Add trivial sequence number generator. (#101777)
* Add trivial sequence number generator.
2025-03-10 17:37:44 +01:00

32 lines
834 B
Go

package xorm
import (
"context"
"testing"
"github.com/stretchr/testify/require"
)
func TestSequenceGenerator(t *testing.T) {
eng, err := NewEngine("sqlite3", ":memory:")
require.NoError(t, err)
require.NotNil(t, eng)
require.Equal(t, "sqlite3", eng.DriverName())
_, err = eng.Exec("CREATE TABLE `autoincrement_sequences` (`name` STRING(128) NOT NULL PRIMARY KEY, `next_value` INT64 NOT NULL)")
require.NoError(t, err)
sg := newSequenceGenerator(eng.db.DB)
val, err := sg.Next(context.Background(), "test", "test")
require.NoError(t, err)
require.Equal(t, int64(1), val)
val, err = sg.Next(context.Background(), "test", "different")
require.NoError(t, err)
require.Equal(t, int64(1), val)
val, err = sg.Next(context.Background(), "test", "different")
require.NoError(t, err)
require.Equal(t, int64(2), val)
}