route/vendor/github.com/gchaincl/dotsql/scanner_test.go

50 lines
966 B
Go

package dotsql
import (
"bufio"
"strings"
"testing"
)
func TestGetTag(t *testing.T) {
var tests = []struct {
line string
want string
}{
{"SELECT 1+1", ""},
{"-- Some Comment", ""},
{"-- name: ", ""},
{"-- name: find-users-by-name", "find-users-by-name"},
{" -- name: save-user ", "save-user"},
}
for _, c := range tests {
got := getTag(c.line)
if got != c.want {
t.Errorf("isTag('%s') == %s, expect %v", c.line, got, c.want)
}
}
}
func TestScannerRun(t *testing.T) {
sqlFile := `
-- name: all-users
-- Finds all users
SELECT * from USER
-- name: empty-query-should-not-be-stored
-- name: save-user
INSERT INTO users (?, ?, ?)
`
scanner := &Scanner{}
queries := scanner.Run(bufio.NewScanner(strings.NewReader(sqlFile)))
numberOfQueries := len(queries)
expectedQueries := 2
if numberOfQueries != expectedQueries {
t.Errorf("Scanner/Run() has %d queries instead of %d",
numberOfQueries, expectedQueries)
}
}