diff --git a/internal/reqdata/parameter_test.go b/internal/reqdata/parameter_test.go index c4a9ce4..7e35532 100644 --- a/internal/reqdata/parameter_test.go +++ b/internal/reqdata/parameter_test.go @@ -162,3 +162,109 @@ func TestJsonPrimitiveFloat(t *testing.T) { } } + +func TestOneSliceStringToString(t *testing.T) { + p := Parameter{Parsed: false, File: false, Value: []string{"lonely-string"}} + + if err := p.Parse(); err != nil { + t.Errorf("unexpected error: <%s>", err) + t.FailNow() + } + + if !p.Parsed { + t.Errorf("expected parameter to be parsed") + t.FailNow() + } + + cast, canCast := p.Value.(string) + if !canCast { + t.Errorf("expected parameter to be a string") + t.FailNow() + } + + if cast != "lonely-string" { + t.Errorf("expected a value of '%s', got '%s'", "lonely-string", cast) + t.FailNow() + } +} + +func TestOneSliceBoolToBool(t *testing.T) { + tcases := []struct { + Raw bool + }{ + {true}, + {false}, + } + + for i, tcase := range tcases { + + t.Run("case "+string(i), func(t *testing.T) { + + p := Parameter{Parsed: false, File: false, Value: []bool{tcase.Raw}} + + if err := p.Parse(); err != nil { + t.Errorf("unexpected error: <%s>", err) + t.FailNow() + } + + if !p.Parsed { + t.Errorf("expected parameter to be parsed") + t.FailNow() + } + + cast, canCast := p.Value.(bool) + if !canCast { + t.Errorf("expected parameter to be a bool") + t.FailNow() + } + + if cast != tcase.Raw { + t.Errorf("expected a value of '%t', got '%t'", tcase.Raw, cast) + t.FailNow() + } + + }) + } + +} + +func TestOneSliceJsonBoolToBool(t *testing.T) { + tcases := []struct { + Raw string + BoolValue bool + }{ + {"true", true}, + {"false", false}, + } + + for i, tcase := range tcases { + + t.Run("case "+string(i), func(t *testing.T) { + + p := Parameter{Parsed: false, File: false, Value: []string{tcase.Raw}} + + if err := p.Parse(); err != nil { + t.Errorf("unexpected error: <%s>", err) + t.FailNow() + } + + if !p.Parsed { + t.Errorf("expected parameter to be parsed") + t.FailNow() + } + + cast, canCast := p.Value.(bool) + if !canCast { + t.Errorf("expected parameter to be a bool") + t.FailNow() + } + + if cast != tcase.BoolValue { + t.Errorf("expected a value of '%t', got '%t'", tcase.BoolValue, cast) + t.FailNow() + } + + }) + } + +}