123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- package arango
- import "testing"
- func TestReadParams(t *testing.T) {
- type TestCase struct {
- Input string
- Output []string
- }
- testCases := []TestCase{
- {
- Input: "FOR doc IN recipes FILTER doc.title == \"Spaghetti\" RETURN doc",
- },
- {
- Input: "FOR doc IN recipes FILTER doc.title == @title RETURN doc",
- Output: []string{"title"},
- },
- {
- Input: "FOR doc IN @@collection FILTER doc.title == @title RETURN doc",
- Output: []string{"@collection", "title"},
- },
- }
- for n, tc := range testCases {
- t.Logf("(%d) Testing %q", n, tc.Input)
- params := ReadParams(tc.Input)
- if params == nil {
- t.Errorf("Expected empty slice, got nil")
- continue
- }
- if len(params) != len(tc.Output) {
- t.Errorf("Expected %d parameters", len(tc.Output))
- }
- for i, name := range tc.Output {
- if i == len(params) {
- break
- }
- if name != params[i] {
- t.Errorf("Expected %s for parameter %d, got %s", name, i, params[i])
- }
- }
- }
- }
|