1
1
package dsn
2
2
3
3
import (
4
- "context "
4
+ "strconv "
5
5
"testing"
6
6
7
+ "github.com/stretchr/testify/require"
8
+
7
9
"github.com/ydb-platform/ydb-go-sdk/v3/config"
8
- "github.com/ydb-platform/ydb-go-sdk/v3/internal/credentials"
9
10
"github.com/ydb-platform/ydb-go-sdk/v3/testutil"
10
11
)
11
12
12
- func init () {
13
- _ = Register ("token" , func (token string ) ([]config.Option , error ) {
14
- return []config.Option {
15
- config .WithCredentials (
16
- credentials .NewAccessTokenCredentials (token , "" ),
17
- ),
18
- }, nil
19
- })
20
- }
21
-
22
13
func TestParseConnectionString (t * testing.T ) {
23
14
for _ , test := range []struct {
24
15
connectionString string
25
16
secure bool
26
17
endpoint string
27
18
database string
28
- token string
29
19
}{
30
20
{
31
21
"grpc://ydb-ru.yandex.net:2135/?" +
32
- "database=/ru/home/gvit/mydb&token=123 " ,
22
+ "database=/ru/home/gvit/mydb" ,
33
23
false ,
34
24
"ydb-ru.yandex.net:2135" ,
35
25
"/ru/home/gvit/mydb" ,
36
- "123" ,
37
26
},
38
27
{
39
- "grpc://ydb-ru.yandex.net:2135/ru/home/gvit/mydb?token=123 " ,
28
+ "grpc://ydb-ru.yandex.net:2135/ru/home/gvit/mydb" ,
40
29
false ,
41
30
"ydb-ru.yandex.net:2135" ,
42
31
"/ru/home/gvit/mydb" ,
43
- "123" ,
44
32
},
45
33
{
46
34
"grpcs://ydb.serverless.yandexcloud.net:2135/?" +
47
- "database=/ru-central1/b1g8skpblkos03malf3s/etn02qso4v3isjb00te1&token=123 " ,
35
+ "database=/ru-central1/b1g8skpblkos03malf3s/etn02qso4v3isjb00te1" ,
48
36
true ,
49
37
"ydb.serverless.yandexcloud.net:2135" ,
50
38
"/ru-central1/b1g8skpblkos03malf3s/etn02qso4v3isjb00te1" ,
51
- "123" ,
52
39
},
53
40
{
54
41
"grpcs://ydb.serverless.yandexcloud.net:2135" +
55
- "/ru-central1/b1g8skpblkos03malf3s/etn02qso4v3isjb00te1?token=123 " ,
42
+ "/ru-central1/b1g8skpblkos03malf3s/etn02qso4v3isjb00te1" ,
56
43
true ,
57
44
"ydb.serverless.yandexcloud.net:2135" ,
58
45
"/ru-central1/b1g8skpblkos03malf3s/etn02qso4v3isjb00te1" ,
59
- "123" ,
60
46
},
61
47
{
62
48
"grpcs://ydb.serverless.yandexcloud.net:2135" +
63
- "/ru-central1/b1g8skpblkos03malf3s/etn02qso4v3isjb00te1?database=/ru/home/gvit/mydb&token=123 " ,
49
+ "/ru-central1/b1g8skpblkos03malf3s/etn02qso4v3isjb00te1?database=/ru/home/gvit/mydb" ,
64
50
true ,
65
51
"ydb.serverless.yandexcloud.net:2135" ,
66
52
"/ru/home/gvit/mydb" ,
67
- "123" ,
68
53
},
69
54
{
70
55
"grpcs://lb.etn03r9df42nb631unbv.ydb.mdb.yandexcloud.net:2135/?" +
71
- "database=/ru-central1/b1g8skpblkos03malf3s/etn03r9df42nb631unbv&token=123 " ,
56
+ "database=/ru-central1/b1g8skpblkos03malf3s/etn03r9df42nb631unbv" ,
72
57
true ,
73
58
"lb.etn03r9df42nb631unbv.ydb.mdb.yandexcloud.net:2135" ,
74
59
"/ru-central1/b1g8skpblkos03malf3s/etn03r9df42nb631unbv" ,
75
- "123" ,
76
60
},
77
61
{
78
62
"grpcs://lb.etn03r9df42nb631unbv.ydb.mdb.yandexcloud.net:2135" +
79
- "/ru-central1/b1g8skpblkos03malf3s/etn03r9df42nb631unbv?token=123 " ,
63
+ "/ru-central1/b1g8skpblkos03malf3s/etn03r9df42nb631unbv" ,
80
64
true ,
81
65
"lb.etn03r9df42nb631unbv.ydb.mdb.yandexcloud.net:2135" ,
82
66
"/ru-central1/b1g8skpblkos03malf3s/etn03r9df42nb631unbv" ,
83
- "123" ,
84
67
},
85
68
{
86
69
"abcd://ydb-ru.yandex.net:2135/?database=/ru/home/gvit/mydb" ,
87
70
true ,
88
71
"ydb-ru.yandex.net:2135" ,
89
72
"/ru/home/gvit/mydb" ,
90
- "" ,
91
73
},
92
74
{
93
75
"abcd://ydb-ru.yandex.net:2135/ru/home/gvit/mydb" ,
94
76
true ,
95
77
"ydb-ru.yandex.net:2135" ,
96
78
"/ru/home/gvit/mydb" ,
97
- "" ,
98
79
},
99
80
} {
100
81
t .Run (test .connectionString , func (t * testing.T ) {
@@ -106,16 +87,29 @@ func TestParseConnectionString(t *testing.T) {
106
87
testutil .Equal (t , test .secure , config .Secure ())
107
88
testutil .Equal (t , test .endpoint , config .Endpoint ())
108
89
testutil .Equal (t , test .database , config .Database ())
109
- var token string
110
- if credentials := config .Credentials (); credentials != nil {
111
- token , err = credentials .Token (context .Background ())
112
- if err != nil {
113
- t .Fatalf ("Received unexpected error:\n %+v" , err )
114
- }
115
- } else {
116
- token = ""
117
- }
118
- testutil .Equal (t , test .token , token )
119
90
})
120
91
}
121
92
}
93
+
94
+ func TestRegister (t * testing.T ) {
95
+ var test1 , test2 , test3 int
96
+ _ = Register ("test1" , func (value string ) (_ []config.Option , err error ) {
97
+ test1 , err = strconv .Atoi (value )
98
+ if err != nil {
99
+ return nil , err
100
+ }
101
+ return []config.Option {}, nil
102
+ })
103
+ _ = Register ("test2" , func (value string ) (_ []config.Option , err error ) {
104
+ test2 , err = strconv .Atoi (value )
105
+ if err != nil {
106
+ return nil , err
107
+ }
108
+ return []config.Option {}, nil
109
+ })
110
+ _ , err := Parse ("grpc://ydb-ru.yandex.net:2135/ru/home/gvit/mydb?test1=1&test2=2&test3=3" )
111
+ require .NoError (t , err , "" )
112
+ require .Equal (t , 1 , test1 , "" )
113
+ require .Equal (t , 2 , test2 , "" )
114
+ require .NotEqualf (t , 3 , test3 , "" )
115
+ }
0 commit comments