50 lines
966 B
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)
|
||
|
}
|
||
|
}
|