-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathselect_test.go
80 lines (63 loc) · 2.65 KB
/
select_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
package gooqu_test
import (
"testing"
gooqu "github.com/flat35hd99/gooqu"
)
func TestSelect(t *testing.T) {
t.Run(`SELECT * FROM "users" WHERE "id" = 1;`, func(t *testing.T) {
query := gooqu.Where(gooqu.Record{"id": 1}).From("users").ToSQL()
expected := `SELECT * FROM "users" WHERE "id" = 1;`
if query != expected {
t.Errorf("expected %s but got %s", expected, query)
}
})
t.Run(`SELECT * FROM "users" WHERE "id" = 2;`, func(t *testing.T) {
query := gooqu.Where(gooqu.Record{"id": 2}).From("users").ToSQL()
expected := `SELECT * FROM "users" WHERE "id" = 2;`
if query != expected {
t.Errorf("expected %s but got %s", expected, query)
}
})
t.Run(`SELECT * FROM "todos" WHERE "id" = 2;`, func(t *testing.T) {
query := gooqu.Where(gooqu.Record{"id": 2}).From("todos").ToSQL()
expected := `SELECT * FROM "todos" WHERE "id" = 2;`
if query != expected {
t.Errorf("expected %s but got %s", expected, query)
}
})
t.Run(`SELECT * FROM "todos" WHERE "id" = 2 LIMIT 1;`, func(t *testing.T) {
query := gooqu.Where(gooqu.Record{"id": 2}).From("todos").Limit(1).ToSQL()
expected := `SELECT * FROM "todos" WHERE "id" = 2 LIMIT 1;`
if query != expected {
t.Errorf("expected %s but got %s", expected, query)
}
})
t.Run(`SELECT "id" FROM "users" WHERE "id" = 1;`, func(t *testing.T) {
query := gooqu.Where(gooqu.Record{"id": 1}).Select(gooqu.Column{"id"}).From("users").ToSQL()
expected := `SELECT "id" FROM "users" WHERE "id" = 1;`
if query != expected {
t.Errorf("expected %s but got %s", expected, query)
}
})
t.Run(`SELECT "id", "name" FROM "users" WHERE "id" = 1;`, func(t *testing.T) {
query := gooqu.Where(gooqu.Record{"id": 1}).Select(gooqu.Column{"id"}, gooqu.Column{"name"}).From("users").ToSQL()
expected := `SELECT "id", "name" FROM "users" WHERE "id" = 1;`
if query != expected {
t.Errorf("expected %s but got %s", expected, query)
}
})
t.Run(`SELECT COUNT("id") FROM "users" GROUP BY "age";`, func(t *testing.T) {
query := gooqu.Select(gooqu.COUNT("id").As("count")).From("users").GroupBy("age").ToSQL()
expected := `SELECT COUNT("id") AS "count" FROM "users" GROUP BY "age";`
if query != expected {
t.Errorf("expected %s but got %s", expected, query)
}
})
t.Run(`SELECT * FROM "users" INNER JOIN "orders" ON "users"."id" = "orders"."user_id";`, func(t *testing.T) {
query := gooqu.Select(gooqu.Column{"*"}).From("users").Join(gooqu.Table("orders"), gooqu.On(map[string]string{"users.id": "orders.user_id"})).ToSQL()
expected := `SELECT * FROM "users" INNER JOIN "orders" ON "users"."id" = "orders"."user_id";`
if query != expected {
t.Errorf("expected %s but got %s", expected, query)
}
})
}