Skip to content
Snippets Groups Projects
Commit 043297ab authored by Jan Semmelink's avatar Jan Semmelink
Browse files

Update CSV parsing test

parent f6595e99
Branches 4-simplify-framework-2
Tags v1.3.1
No related merge requests found
...@@ -102,11 +102,11 @@ func (ctx apiContext) extract(name string, t reflect.Type, v reflect.Value) erro ...@@ -102,11 +102,11 @@ func (ctx apiContext) extract(name string, t reflect.Type, v reflect.Value) erro
var paramStrValues []string var paramStrValues []string
if paramStrValue, isDefined := ctx.request.QueryStringParameters[n]; isDefined { if paramStrValue, isDefined := ctx.request.QueryStringParameters[n]; isDefined {
if len(paramStrValue) >= 2 && paramStrValue[0] == '[' && paramStrValue[len(paramStrValue)-1] == ']' { if len(paramStrValue) >= 2 && paramStrValue[0] == '[' && paramStrValue[len(paramStrValue)-1] == ']' {
csvReader := csv.NewReader(strings.NewReader(paramStrValue)) csvReader := csv.NewReader(strings.NewReader(paramStrValue[1 : len(paramStrValue)-1]))
var err error var err error
paramStrValues, err = csvReader.Read() paramStrValues, err = csvReader.Read()
if err != nil { if err != nil {
return errors.Wrapf(err, "invalid CSV") return errors.Wrapf(err, "invalid CSV: [%s]", paramStrValue)
} }
} else { } else {
paramStrValues = []string{paramStrValue} //single value paramStrValues = []string{paramStrValue} //single value
......
...@@ -101,7 +101,7 @@ func TestGet(t *testing.T) { ...@@ -101,7 +101,7 @@ func TestGet(t *testing.T) {
"offset": "3", "offset": "3",
"search": "4", //single value parts into string "search": "4", //single value parts into string
"find1": "sarel", //single value parsed into array "find1": "sarel", //single value parsed into array
"find3": "[hendrik,,frederik,johan]", //array of 4 values in CSV notation "find3": "[hendrik,,\"frederik\",\"johan,johan\"]", //array of 4 values in CSV notation
}, },
MultiValueQueryStringParameters: map[string][]string{ MultiValueQueryStringParameters: map[string][]string{
"find2": {"hans", "gert"}, //multi-values parsed into array "find2": {"hans", "gert"}, //multi-values parsed into array
...@@ -120,7 +120,7 @@ func TestGet(t *testing.T) { ...@@ -120,7 +120,7 @@ func TestGet(t *testing.T) {
if get.ID != 1 || get.Offset != 3 || get.Limit != 2 || get.Search != "4" || get.Find != "koos" || if get.ID != 1 || get.Offset != 3 || get.Limit != 2 || get.Search != "4" || get.Find != "koos" ||
len(get.Find1) != 1 || get.Find1[0] != "sarel" || len(get.Find1) != 1 || get.Find1[0] != "sarel" ||
len(get.Find2) != 2 || get.Find2[0] != "hans" || get.Find2[1] != "gert" || len(get.Find2) != 2 || get.Find2[0] != "hans" || get.Find2[1] != "gert" ||
len(get.Find3) != 4 || get.Find3[0] != "hendrik" || get.Find3[1] != "" || get.Find3[2] != "frederik" || get.Find3[3] != "johan" { len(get.Find3) != 4 || get.Find3[0] != "hendrik" || get.Find3[1] != "" || get.Find3[2] != "frederik" || get.Find3[3] != "johan,johan" {
t.Fatalf("wrong values") t.Fatalf("wrong values")
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment