8
8
9
9
func TestNew (t * testing.T ) {
10
10
type args struct {
11
- mds []map [string ]string
11
+ mds []map [string ][] string
12
12
}
13
13
tests := []struct {
14
14
name string
@@ -17,13 +17,13 @@ func TestNew(t *testing.T) {
17
17
}{
18
18
{
19
19
name : "hello" ,
20
- args : args {[]map [string ]string {{"hello" : "kratos" }, {"hello2" : "go-kratos" }}},
21
- want : Metadata {"hello" : "kratos" , "hello2" : "go-kratos" },
20
+ args : args {[]map [string ][] string {{"hello" : { "kratos" }} , {"hello2" : { "go-kratos" } }}},
21
+ want : Metadata {"hello" : { "kratos" } , "hello2" : { "go-kratos" } },
22
22
},
23
23
{
24
24
name : "hi" ,
25
- args : args {[]map [string ]string {{"hi" : "kratos" }, {"hi2" : "go-kratos" }}},
26
- want : Metadata {"hi" : "kratos" , "hi2" : "go-kratos" },
25
+ args : args {[]map [string ][] string {{"hi" : { "kratos" }} , {"hi2" : { "go-kratos" } }}},
26
+ want : Metadata {"hi" : { "kratos" } , "hi2" : { "go-kratos" } },
27
27
},
28
28
}
29
29
for _ , tt := range tests {
@@ -47,13 +47,13 @@ func TestMetadata_Get(t *testing.T) {
47
47
}{
48
48
{
49
49
name : "kratos" ,
50
- m : Metadata {"kratos" : "value" , "env" : "dev" },
50
+ m : Metadata {"kratos" : { "value" } , "env" : { "dev" } },
51
51
args : args {key : "kratos" },
52
52
want : "value" ,
53
53
},
54
54
{
55
55
name : "env" ,
56
- m : Metadata {"kratos" : "value" , "env" : "dev" },
56
+ m : Metadata {"kratos" : { "value" } , "env" : { "dev" } },
57
57
args : args {key : "env" },
58
58
want : "dev" ,
59
59
},
@@ -67,6 +67,38 @@ func TestMetadata_Get(t *testing.T) {
67
67
}
68
68
}
69
69
70
+ func TestMetadata_Values (t * testing.T ) {
71
+ type args struct {
72
+ key string
73
+ }
74
+ tests := []struct {
75
+ name string
76
+ m Metadata
77
+ args args
78
+ want []string
79
+ }{
80
+ {
81
+ name : "kratos" ,
82
+ m : Metadata {"kratos" : {"value" , "value2" }, "env" : {"dev" }},
83
+ args : args {key : "kratos" },
84
+ want : []string {"value" , "value2" },
85
+ },
86
+ {
87
+ name : "env" ,
88
+ m : Metadata {"kratos" : {"value" , "value2" }, "env" : {"dev" }},
89
+ args : args {key : "env" },
90
+ want : []string {"dev" },
91
+ },
92
+ }
93
+ for _ , tt := range tests {
94
+ t .Run (tt .name , func (t * testing.T ) {
95
+ if got := tt .m .Values (tt .args .key ); ! reflect .DeepEqual (got , tt .want ) {
96
+ t .Errorf ("Get() = %v, want %v" , got , tt .want )
97
+ }
98
+ })
99
+ }
100
+ }
101
+
70
102
func TestMetadata_Set (t * testing.T ) {
71
103
type args struct {
72
104
key string
@@ -82,13 +114,13 @@ func TestMetadata_Set(t *testing.T) {
82
114
name : "kratos" ,
83
115
m : Metadata {},
84
116
args : args {key : "hello" , value : "kratos" },
85
- want : Metadata {"hello" : "kratos" },
117
+ want : Metadata {"hello" : { "kratos" } },
86
118
},
87
119
{
88
120
name : "env" ,
89
- m : Metadata {"hello" : "kratos" },
121
+ m : Metadata {"hello" : { "kratos" } },
90
122
args : args {key : "env" , value : "pro" },
91
- want : Metadata {"hello" : "kratos" , "env" : "pro" },
123
+ want : Metadata {"hello" : { "kratos" } , "env" : { "pro" } },
92
124
},
93
125
{
94
126
name : "empty" ,
@@ -107,6 +139,46 @@ func TestMetadata_Set(t *testing.T) {
107
139
}
108
140
}
109
141
142
+ func TestMetadata_Add (t * testing.T ) {
143
+ type args struct {
144
+ key string
145
+ value string
146
+ }
147
+ tests := []struct {
148
+ name string
149
+ m Metadata
150
+ args args
151
+ want Metadata
152
+ }{
153
+ {
154
+ name : "kratos" ,
155
+ m : Metadata {},
156
+ args : args {key : "hello" , value : "kratos" },
157
+ want : Metadata {"hello" : {"kratos" }},
158
+ },
159
+ {
160
+ name : "env" ,
161
+ m : Metadata {"hello" : {"kratos" }},
162
+ args : args {key : "hello" , value : "again" },
163
+ want : Metadata {"hello" : {"kratos" , "again" }},
164
+ },
165
+ {
166
+ name : "empty" ,
167
+ m : Metadata {},
168
+ args : args {key : "" , value : "" },
169
+ want : Metadata {},
170
+ },
171
+ }
172
+ for _ , tt := range tests {
173
+ t .Run (tt .name , func (t * testing.T ) {
174
+ tt .m .Add (tt .args .key , tt .args .value )
175
+ if ! reflect .DeepEqual (tt .m , tt .want ) {
176
+ t .Errorf ("Set() = %v, want %v" , tt .m , tt .want )
177
+ }
178
+ })
179
+ }
180
+ }
181
+
110
182
func TestClientContext (t * testing.T ) {
111
183
type args struct {
112
184
ctx context.Context
@@ -118,11 +190,11 @@ func TestClientContext(t *testing.T) {
118
190
}{
119
191
{
120
192
name : "kratos" ,
121
- args : args {context .Background (), Metadata {"hello" : "kratos" , "kratos" : "https://go-kratos.dev" }},
193
+ args : args {context .Background (), Metadata {"hello" : { "kratos" } , "kratos" : { "https://go-kratos.dev" } }},
122
194
},
123
195
{
124
196
name : "hello" ,
125
- args : args {context .Background (), Metadata {"hello" : "kratos" , "hello2" : "https://go-kratos.dev" }},
197
+ args : args {context .Background (), Metadata {"hello" : { "kratos" } , "hello2" : { "https://go-kratos.dev" } }},
126
198
},
127
199
}
128
200
for _ , tt := range tests {
@@ -151,11 +223,11 @@ func TestServerContext(t *testing.T) {
151
223
}{
152
224
{
153
225
name : "kratos" ,
154
- args : args {context .Background (), Metadata {"hello" : "kratos" , "kratos" : "https://go-kratos.dev" }},
226
+ args : args {context .Background (), Metadata {"hello" : { "kratos" } , "kratos" : { "https://go-kratos.dev" } }},
155
227
},
156
228
{
157
229
name : "hello" ,
158
- args : args {context .Background (), Metadata {"hello" : "kratos" , "hello2" : "https://go-kratos.dev" }},
230
+ args : args {context .Background (), Metadata {"hello" : { "kratos" } , "hello2" : { "https://go-kratos.dev" } }},
159
231
},
160
232
}
161
233
for _ , tt := range tests {
@@ -186,12 +258,12 @@ func TestAppendToClientContext(t *testing.T) {
186
258
{
187
259
name : "kratos" ,
188
260
args : args {Metadata {}, []string {"hello" , "kratos" , "env" , "dev" }},
189
- want : Metadata {"hello" : "kratos" , "env" : "dev" },
261
+ want : Metadata {"hello" : { "kratos" } , "env" : { "dev" } },
190
262
},
191
263
{
192
264
name : "hello" ,
193
- args : args {Metadata {"hi" : "https://go-kratos.dev/" }, []string {"hello" , "kratos" , "env" , "dev" }},
194
- want : Metadata {"hello" : "kratos" , "env" : "dev" , "hi" : "https://go-kratos.dev/" },
265
+ args : args {Metadata {"hi" : { "https://go-kratos.dev/" } }, []string {"hello" , "kratos" , "env" , "dev" }},
266
+ want : Metadata {"hello" : { "kratos" } , "env" : { "dev" } , "hi" : { "https://go-kratos.dev/" } },
195
267
},
196
268
}
197
269
for _ , tt := range tests {
@@ -240,13 +312,13 @@ func TestMergeToClientContext(t *testing.T) {
240
312
}{
241
313
{
242
314
name : "kratos" ,
243
- args : args {Metadata {}, Metadata {"hello" : "kratos" , "env" : "dev" }},
244
- want : Metadata {"hello" : "kratos" , "env" : "dev" },
315
+ args : args {Metadata {}, Metadata {"hello" : { "kratos" } , "env" : { "dev" } }},
316
+ want : Metadata {"hello" : { "kratos" } , "env" : { "dev" } },
245
317
},
246
318
{
247
319
name : "hello" ,
248
- args : args {Metadata {"hi" : "https://go-kratos.dev/" }, Metadata {"hello" : "kratos" , "env" : "dev" }},
249
- want : Metadata {"hello" : "kratos" , "env" : "dev" , "hi" : "https://go-kratos.dev/" },
320
+ args : args {Metadata {"hi" : { "https://go-kratos.dev/" }} , Metadata {"hello" : { "kratos" } , "env" : { "dev" } }},
321
+ want : Metadata {"hello" : { "kratos" } , "env" : { "dev" } , "hi" : { "https://go-kratos.dev/" } },
250
322
},
251
323
}
252
324
for _ , tt := range tests {
@@ -265,19 +337,19 @@ func TestMergeToClientContext(t *testing.T) {
265
337
}
266
338
267
339
func TestMetadata_Range (t * testing.T ) {
268
- md := Metadata {"kratos" : "kratos" , "https://go-kratos.dev/" : "https://go-kratos.dev/" , "go-kratos" : "go-kratos" }
340
+ md := Metadata {"kratos" : { "kratos" } , "https://go-kratos.dev/" : { "https://go-kratos.dev/" } , "go-kratos" : { "go-kratos" } }
269
341
tmp := Metadata {}
270
- md .Range (func (k , v string ) bool {
342
+ md .Range (func (k string , v [] string ) bool {
271
343
if k == "https://go-kratos.dev/" || k == "kratos" {
272
344
tmp [k ] = v
273
345
}
274
346
return true
275
347
})
276
- if ! reflect .DeepEqual (tmp , Metadata {"https://go-kratos.dev/" : "https://go-kratos.dev/" , "kratos" : "kratos" }) {
277
- t .Errorf ("metadata = %v, want %v" , tmp , Metadata {"https://go-kratos.dev/" : "https://go-kratos.dev/" , "kratos" : "kratos" })
348
+ if ! reflect .DeepEqual (tmp , Metadata {"https://go-kratos.dev/" : { "https://go-kratos.dev/" } , "kratos" : { "kratos" } }) {
349
+ t .Errorf ("metadata = %v, want %v" , tmp , Metadata {"https://go-kratos.dev/" : { "https://go-kratos.dev/" } , "kratos" : { "kratos" } })
278
350
}
279
351
tmp = Metadata {}
280
- md .Range (func (k , v string ) bool {
352
+ md .Range (func (k string , v [] string ) bool {
281
353
return false
282
354
})
283
355
if ! reflect .DeepEqual (tmp , Metadata {}) {
@@ -293,13 +365,13 @@ func TestMetadata_Clone(t *testing.T) {
293
365
}{
294
366
{
295
367
name : "kratos" ,
296
- m : Metadata {"kratos" : "kratos" , "https://go-kratos.dev/" : "https://go-kratos.dev/" , "go-kratos" : "go-kratos" },
297
- want : Metadata {"kratos" : "kratos" , "https://go-kratos.dev/" : "https://go-kratos.dev/" , "go-kratos" : "go-kratos" },
368
+ m : Metadata {"kratos" : { "kratos" } , "https://go-kratos.dev/" : { "https://go-kratos.dev/" } , "go-kratos" : { "go-kratos" } },
369
+ want : Metadata {"kratos" : { "kratos" } , "https://go-kratos.dev/" : { "https://go-kratos.dev/" } , "go-kratos" : { "go-kratos" } },
298
370
},
299
371
{
300
372
name : "go" ,
301
- m : Metadata {"language" : "golang" },
302
- want : Metadata {"language" : "golang" },
373
+ m : Metadata {"language" : { "golang" } },
374
+ want : Metadata {"language" : { "golang" } },
303
375
},
304
376
}
305
377
for _ , tt := range tests {
@@ -308,7 +380,7 @@ func TestMetadata_Clone(t *testing.T) {
308
380
if ! reflect .DeepEqual (got , tt .want ) {
309
381
t .Errorf ("Clone() = %v, want %v" , got , tt .want )
310
382
}
311
- got ["kratos" ] = "go"
383
+ got ["kratos" ] = [] string { "go" }
312
384
if reflect .DeepEqual (got , tt .want ) {
313
385
t .Errorf ("want got != want got %v want %v" , got , tt .want )
314
386
}
0 commit comments