@@ -97,6 +97,24 @@ func TestPopulateMapField(t *testing.T) {
9797 }
9898}
9999
100+ func TestPopulateMapSepField (t * testing.T ) {
101+ query , err := url .ParseQuery ("map.name=kratos" )
102+ if err != nil {
103+ t .Fatal (err )
104+ }
105+ comp := & complex.Complex {}
106+ field := getFieldDescriptor (comp .ProtoReflect (), "map" )
107+ // Fill the comp map field with the url query values
108+ err = populateMapField (field , comp .ProtoReflect ().Mutable (field ).Map (), []string {"map.name" }, query ["map.name" ])
109+ if err != nil {
110+ t .Fatal (err )
111+ }
112+ // Get the comp map field value
113+ if query ["map.name" ][0 ] != comp .Map ["name" ] {
114+ t .Errorf ("want: %s, got: %s" , query , comp .Map )
115+ }
116+ }
117+
100118func TestParseField (t * testing.T ) {
101119 tests := []struct {
102120 name string
@@ -230,31 +248,31 @@ func TestParseURLQueryMapKey(t *testing.T) {
230248 fieldName : "map[]" , field : "map" , fieldKey : "" , err : nil ,
231249 },
232250 {
233- fieldName : "" , field : "" , fieldKey : "" , err : ErrInvalidFormatMapKey ,
251+ fieldName : "" , field : "" , fieldKey : "" , err : errInvalidFormatMapKey ,
234252 },
235253 {
236- fieldName : "[[]" , field : "" , fieldKey : "" , err : ErrInvalidFormatMapKey ,
254+ fieldName : "[[]" , field : "" , fieldKey : "" , err : errInvalidFormatMapKey ,
237255 },
238256 {
239- fieldName : "map[kratos]=" , field : "" , fieldKey : "" , err : ErrInvalidFormatMapKey ,
257+ fieldName : "map[kratos]=" , field : "" , fieldKey : "" , err : errInvalidFormatMapKey ,
240258 },
241259 {
242- fieldName : "[kratos]" , field : "" , fieldKey : "" , err : ErrInvalidFormatMapKey ,
260+ fieldName : "[kratos]" , field : "" , fieldKey : "" , err : errInvalidFormatMapKey ,
243261 },
244262 {
245- fieldName : "map" , field : "" , fieldKey : "" , err : ErrInvalidFormatMapKey ,
263+ fieldName : "map" , field : "" , fieldKey : "" , err : errInvalidFormatMapKey ,
246264 },
247265 {
248- fieldName : "map[" , field : "" , fieldKey : "" , err : ErrInvalidFormatMapKey ,
266+ fieldName : "map[" , field : "" , fieldKey : "" , err : errInvalidFormatMapKey ,
249267 },
250268 {
251- fieldName : "]kratos[" , field : "" , fieldKey : "" , err : ErrInvalidFormatMapKey ,
269+ fieldName : "]kratos[" , field : "" , fieldKey : "" , err : errInvalidFormatMapKey ,
252270 },
253271 {
254- fieldName : "[kratos" , field : "" , fieldKey : "" , err : ErrInvalidFormatMapKey ,
272+ fieldName : "[kratos" , field : "" , fieldKey : "" , err : errInvalidFormatMapKey ,
255273 },
256274 {
257- fieldName : "kratos]" , field : "" , fieldKey : "" , err : ErrInvalidFormatMapKey ,
275+ fieldName : "kratos]" , field : "" , fieldKey : "" , err : errInvalidFormatMapKey ,
258276 },
259277 }
260278 for _ , test := range tests {
0 commit comments