Skip to content

Commit 2ba9113

Browse files
committed
add tests
1 parent e3ab1f8 commit 2ba9113

File tree

6 files changed

+133
-0
lines changed

6 files changed

+133
-0
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
tests/test
2+
src/sqlbuilder

src/sqlbuilderpkg/insert.nim

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ proc sqlInsert*(table: string, data: varargs[string], args: ArgsContainer.query)
1919
when defined(testSqlquery):
2020
echo fields & ") VALUES (" & vals & ")"
2121

22+
when defined(test):
23+
testout = fields & ") VALUES (" & vals & ")"
24+
2225
result = sql(fields & ") VALUES (" & vals & ")")
2326

2427

@@ -38,6 +41,9 @@ proc sqlInsert*(table: string, data: varargs[string]): SqlQuery =
3841
when defined(testSqlquery):
3942
echo fields & ") VALUES (" & vals & ")"
4043

44+
when defined(test):
45+
testout = fields & ") VALUES (" & vals & ")"
46+
4147
result = sql(fields & ") VALUES (" & vals & ")")
4248

4349

src/sqlbuilderpkg/select.nim

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ proc sqlSelect*(table: string, data: varargs[string], left: varargs[string], whe
3636
when defined(testSqlquery):
3737
echo res & " FROM " & table & lef & wes & acc & " " & user
3838

39+
when defined(test):
40+
testout = res & " FROM " & table & lef & wes & acc & " " & user
41+
3942
result = sql(res & " FROM " & table & lef & wes & acc & " " & user)
4043

4144

@@ -78,6 +81,9 @@ proc sqlSelect*(table: string, data: varargs[string], left: varargs[string], whe
7881
when defined(testSqlquery):
7982
echo res & " FROM " & table & lef & wes & acc & " " & user
8083

84+
when defined(test):
85+
testout = res & " FROM " & table & lef & wes & acc & " " & user
86+
8187
result = sql(res & " FROM " & table & lef & wes & acc & " " & user)
8288

8389

src/sqlbuilderpkg/update.nim

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ proc sqlUpdate*(table: string, data: varargs[string], where: varargs[string], ar
2222
when defined(testSqlquery):
2323
echo fields & wes
2424

25+
when defined(test):
26+
testout = fields & wes
27+
2528
result = sql(fields & wes)
2629

2730

@@ -43,6 +46,9 @@ proc sqlUpdate*(table: string, data: varargs[string], where: varargs[string]): S
4346
when defined(testSqlquery):
4447
echo fields & wes
4548

49+
when defined(test):
50+
testout = fields & wes
51+
4652
result = sql(fields & wes)
4753

4854

tests/config.nims

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
switch("path", "..")
2+
switch("d", "test")

tests/test.nim

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
# Copyright Thomas T. Jarløv (TTJ)
2+
3+
import
4+
std/db_common,
5+
std/unittest,
6+
src/sqlbuilder
7+
8+
9+
suite "test formats":
10+
11+
test "genArgsColumns":
12+
let (s, a) = genArgsColumns((true, "name", ""), (true, "age", 30), (false, "nim", ""), (true, "", "154"))
13+
14+
assert s == ["name", "age"]
15+
16+
for k, v in a.query:
17+
if k == 0:
18+
assert $v == """(val: "", isNull: false)"""
19+
if k == 1:
20+
assert $v == """(val: "30", isNull: false)"""
21+
if k == 3:
22+
assert $v == """(val: "154", isNull: false)"""
23+
24+
for k, v in a.args:
25+
if k == 0:
26+
assert $v == ""
27+
if k == 1:
28+
assert $v == "30"
29+
if k == 3:
30+
assert $v == "154"
31+
32+
let a1 = sqlInsert("my-table", s, a.query)
33+
let a2 = sqlDelete("my-table", s, a.query)
34+
let a3 = sqlUpdate("my-table", s, ["id"], a.query)
35+
let a4 = sqlSelect("my-table", s, [""], ["id ="], "", "", "", a.query)
36+
37+
38+
test "genArgsSetNull":
39+
let b = genArgsSetNull("hje", "", "12")
40+
assert b.args == @["hje", "12"]
41+
assert b.query.len() == 3
42+
for k, v in b.query:
43+
if k == 0:
44+
assert $v == """(val: "hje", isNull: false)"""
45+
if k == 1:
46+
assert $v == """(val: "", isNull: true)"""
47+
if k == 2:
48+
assert $v == """(val: "12", isNull: false)"""
49+
50+
test "genArgs":
51+
let b = genArgs("hje", "", "12")
52+
assert b.args == @["hje", "", "12"]
53+
assert b.query.len() == 3
54+
for k, v in b.query:
55+
if k == 0:
56+
assert $v == """(val: "hje", isNull: false)"""
57+
if k == 1:
58+
assert $v == """(val: "", isNull: false)"""
59+
if k == 2:
60+
assert $v == """(val: "12", isNull: false)"""
61+
62+
test "genArgs with null":
63+
let b = genArgs("hje", dbNullVal, "12")
64+
assert b.args == @["hje", "12"]
65+
assert b.query.len() == 3
66+
for k, v in b.query:
67+
if k == 0:
68+
assert $v == """(val: "hje", isNull: false)"""
69+
if k == 1:
70+
assert $v == """(val: "", isNull: true)"""
71+
if k == 2:
72+
assert $v == """(val: "12", isNull: false)"""
73+
74+
test "sqlInsert":
75+
let (s, a1) = genArgsColumns((true, "name", ""), (true, "age", 30), (false, "nim", ""), (true, "", "154"))
76+
discard sqlInsert("my-table", s, a1.query)
77+
assert testout == "INSERT INTO my-table (name, age) VALUES (?, ?)"
78+
79+
let a2 = genArgsSetNull("hje", "")
80+
discard sqlInsert("my-table", ["name", "age"], a2.query)
81+
assert testout == "INSERT INTO my-table (name) VALUES (?)"
82+
83+
test "sqlUpdate":
84+
let (s, a1) = genArgsColumns((true, "name", ""), (true, "age", 30), (false, "nim", ""), (true, "", "154"))
85+
discard sqlUpdate("my-table", s, ["id"], a1.query)
86+
assert testout == "UPDATE my-table SET name = ?, age = ? WHERE id = ?"
87+
88+
let a2 = genArgsSetNull("hje", "")
89+
discard sqlUpdate("my-table", ["name", "age"], ["id"], a2.query)
90+
assert testout == "UPDATE my-table SET name = ?, age = NULL WHERE id = ?"
91+
92+
let a3 = genArgs("hje", "")
93+
discard sqlUpdate("my-table", ["name", "age"], ["id"], a3.query)
94+
assert testout == "UPDATE my-table SET name = ?, age = ? WHERE id = ?"
95+
96+
let a4 = genArgs("hje", dbNullVal)
97+
discard sqlUpdate("my-table", ["name", "age"], ["id"], a4.query)
98+
assert testout == "UPDATE my-table SET name = ?, age = NULL WHERE id = ?"
99+
100+
test "sqlSelect":
101+
let a2 = genArgsSetNull("hje", "", "123")
102+
discard sqlSelect("my-table", ["name", "age"], [""], ["id ="], "", "", "", a2.query)
103+
assert testout == "SELECT name, age FROM my-table WHERE id = ? "
104+
105+
let a3 = genArgs("hje", "")
106+
discard sqlSelect("my-table AS m", ["m.name", "m.age"], ["p ON p.id = m.id"], ["m.id ="], "", "", "", a3.query)
107+
assert testout == "SELECT m.name, m.age FROM my-table AS m LEFT JOIN p ON p.id = m.id WHERE m.id = ? "
108+
109+
let a4 = genArgs("hje", dbNullVal)
110+
discard sqlSelect("my-table", ["name", "age"], [""], ["id ="], "", "", "", a4.query)
111+
assert testout == "SELECT name, age FROM my-table WHERE id = ? "

0 commit comments

Comments
 (0)