@@ -176,33 +176,57 @@ func TestMakeDir(t *testing.T) {
176
176
177
177
func TestConvertTagsToMap (t * testing.T ) {
178
178
tests := []struct {
179
- desc string
180
- tags string
181
- expectedOut map [string ]string
182
- expectedErr error
179
+ desc string
180
+ tags string
181
+ tagsDelimiter string
182
+ expectedOut map [string ]string
183
+ expectedErr error
183
184
}{
184
185
{
185
- desc : "Improper KeyValuePair" ,
186
- tags : "foo=bar=gar,lorem=ipsum" ,
187
- expectedOut : nil ,
188
- expectedErr : fmt .Errorf ("Tags '%s' are invalid, the format should like: 'key1=value1,key2=value2'" , "foo=bar=gar,lorem=ipsum" ),
186
+ desc : "Improper KeyValuePair" ,
187
+ tags : "foo,lorem=ipsum" ,
188
+ tagsDelimiter : "," ,
189
+ expectedOut : nil ,
190
+ expectedErr : fmt .Errorf ("Tags '%s' are invalid, the format should like: 'key1=value1,key2=value2'" , "foo,lorem=ipsum" ),
189
191
},
190
192
{
191
- desc : "Missing Key" ,
192
- tags : "=bar,lorem=ipsum" ,
193
- expectedOut : nil ,
194
- expectedErr : fmt .Errorf ("Tags '%s' are invalid, the format should like: 'key1=value1,key2=value2'" , "=bar,lorem=ipsum" ),
193
+ desc : "Missing Key" ,
194
+ tags : "=bar,lorem=ipsum" ,
195
+ tagsDelimiter : "," ,
196
+ expectedOut : nil ,
197
+ expectedErr : fmt .Errorf ("Tags '%s' are invalid, the format should like: 'key1=value1,key2=value2'" , "=bar,lorem=ipsum" ),
195
198
},
196
199
{
197
- desc : "Successful Input/Output" ,
198
- tags : "foo=bar,lorem=ipsum" ,
199
- expectedOut : map [string ]string {"foo" : "bar" , "lorem" : "ipsum" },
200
+ desc : "Successful Input/Output" ,
201
+ tags : "foo=bar,lorem=ipsum" ,
202
+ tagsDelimiter : "," ,
203
+ expectedOut : map [string ]string {"foo" : "bar" , "lorem" : "ipsum" },
204
+ expectedErr : nil ,
205
+ },
206
+ {
207
+ desc : "should return success for empty tagsDelimiter" ,
208
+ tags : "key1=value1,key2=value2" ,
209
+ tagsDelimiter : "" ,
210
+ expectedOut : map [string ]string {
211
+ "key1" : "value1" ,
212
+ "key2" : "value2" ,
213
+ },
214
+ expectedErr : nil ,
215
+ },
216
+ {
217
+ desc : "should return success for special tagsDelimiter and tag values containing commas and equal sign" ,
218
+ tags : "key1=aGVsbG8=;key2=value-2, value-3" ,
219
+ tagsDelimiter : ";" ,
220
+ expectedOut : map [string ]string {
221
+ "key1" : "aGVsbG8=" ,
222
+ "key2" : "value-2, value-3" ,
223
+ },
200
224
expectedErr : nil ,
201
225
},
202
226
}
203
227
204
228
for _ , test := range tests {
205
- output , err := ConvertTagsToMap (test .tags )
229
+ output , err := ConvertTagsToMap (test .tags , test . tagsDelimiter )
206
230
assert .Equal (t , test .expectedOut , output , test .desc )
207
231
assert .Equal (t , test .expectedErr , err , test .desc )
208
232
}
@@ -241,7 +265,7 @@ func TestConvertTagsToMap2(t *testing.T) {
241
265
},
242
266
}
243
267
for _ , test := range tests {
244
- result , err := ConvertTagsToMap (test .tags )
268
+ result , err := ConvertTagsToMap (test .tags , "" )
245
269
if test .err {
246
270
assert .NotNil (t , err )
247
271
} else {
0 commit comments