From c2e8efc82b8a34d255a4762eafb0a7968d477ae6 Mon Sep 17 00:00:00 2001 From: xdrm-brackets Date: Mon, 2 Mar 2020 21:51:06 +0100 Subject: [PATCH] test string slice as string ; invalid json but valid when wrapped --- internal/reqdata/parameter_test.go | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/internal/reqdata/parameter_test.go b/internal/reqdata/parameter_test.go index f63f33e..ea5b328 100644 --- a/internal/reqdata/parameter_test.go +++ b/internal/reqdata/parameter_test.go @@ -31,7 +31,7 @@ func TestSimpleString(t *testing.T) { } } func TestStringSlice(t *testing.T) { - p := Parameter{Parsed: false, File: false, Value: "some-string"} + p := Parameter{Parsed: false, File: false, Value: `["str1", "str2"]`} err := p.Parse() @@ -45,14 +45,31 @@ func TestStringSlice(t *testing.T) { t.FailNow() } - cast, canCast := p.Value.(string) + slice, canCast := p.Value.([]interface{}) if !canCast { - t.Errorf("expected parameter to be a string") + t.Errorf("expected parameter to be a []interface{}") t.FailNow() } - if cast != "some-string" { - t.Errorf("expected parameter to equal 'some-string', got '%s'", cast) + if len(slice) != 2 { + t.Errorf("expected 2 values, got %d", len(slice)) t.FailNow() } + + results := []string{"str1", "str2"} + + for i, res := range results { + + cast, canCast := slice[i].(string) + if !canCast { + t.Errorf("expected parameter %d to be a []string", i) + continue + } + if cast != res { + t.Errorf("expected first value to be '%s', got '%s'", res, cast) + continue + } + + } + }