github.com/ydb-platform/ydb-go-sdk/v3@v3.89.2/tests/integration/register_dsn_parser_test.go (about) 1 //go:build integration 2 // +build integration 3 4 package integration 5 6 import ( 7 "context" 8 "database/sql" 9 "os" 10 "testing" 11 12 "github.com/stretchr/testify/require" 13 14 "github.com/ydb-platform/ydb-go-sdk/v3" 15 ) 16 17 func TestRegisterDsnParser(t *testing.T) { 18 t.Run("native", func(t *testing.T) { 19 var visited bool 20 registrationID := ydb.RegisterDsnParser(func(dsn string) (opts []ydb.Option, _ error) { 21 return []ydb.Option{ 22 func(ctx context.Context, d *ydb.Driver) error { 23 visited = true 24 25 return nil 26 }, 27 }, nil 28 }) 29 defer ydb.UnregisterDsnParser(registrationID) 30 db, err := ydb.Open(context.Background(), os.Getenv("YDB_CONNECTION_STRING")) 31 require.NoError(t, err) 32 require.True(t, visited) 33 defer func() { 34 _ = db.Close(context.Background()) 35 }() 36 }) 37 t.Run("database/sql", func(t *testing.T) { 38 var visited bool 39 registrationID := ydb.RegisterDsnParser(func(dsn string) (opts []ydb.Option, _ error) { 40 return []ydb.Option{ 41 func(ctx context.Context, d *ydb.Driver) error { 42 visited = true 43 44 return nil 45 }, 46 }, nil 47 }) 48 defer ydb.UnregisterDsnParser(registrationID) 49 db, err := sql.Open("ydb", os.Getenv("YDB_CONNECTION_STRING")) 50 require.NoError(t, err) 51 require.True(t, visited) 52 defer func() { 53 _ = db.Close() 54 }() 55 }) 56 }