feat: parseFunctionArguments

This commit is contained in:
debugtalk
2021-10-03 20:15:55 +08:00
parent 1b2cdd207a
commit cc736e9aed
2 changed files with 67 additions and 8 deletions

View File

@@ -326,7 +326,11 @@ func TestLiteralEval(t *testing.T) {
{"-123", -123},
{"-1.23", -1.23},
{"abc", "abc"},
{" a bc ", "a bc"},
{" a $bc ", "a $bc"},
{"$var", "$var"},
{" $var ", "$var"},
{" $var1 ", "$var1"},
{"", ""},
}
@@ -340,3 +344,33 @@ func TestLiteralEval(t *testing.T) {
}
}
}
func TestParseFunctionArguments(t *testing.T) {
testData := []struct {
expr string
expect interface{}
}{
{"", []interface{}{}},
{"123", []interface{}{123}},
{"1.23", []interface{}{1.23}},
{"-123", []interface{}{-123}},
{"-1.23", []interface{}{-1.23}},
{"abc", []interface{}{"abc"}},
{"$var", []interface{}{"$var"}},
{"1,2", []interface{}{1, 2}},
{"1,2.3", []interface{}{1, 2.3}},
{"1, -2.3", []interface{}{1, -2.3}},
{"1,,2", []interface{}{1, nil, 2}},
{" $var1 , 2 ", []interface{}{"$var1", 2}},
}
for _, data := range testData {
value, err := parseFunctionArguments(data.expr)
if !assert.Nil(t, err) {
t.Fail()
}
if !assert.Equal(t, data.expect, value) {
t.Fail()
}
}
}