Skip to content

Commit a0fa880

Browse files
committed
Test interleaving of statements and parameters.
1 parent 87d1a7a commit a0fa880

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

db_test.go

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package sqldb
2+
3+
import (
4+
"reflect"
5+
"testing"
6+
)
7+
8+
func TestInterleaveParameters(t *testing.T) {
9+
actual := make(map[string][]any)
10+
for statement, args := range interleaveParameters("?,?;"+"?;;;"+"?,?,?", 1, 2, 3, 4, 5, 6) {
11+
actual[statement] = args
12+
}
13+
expected := map[string][]any{
14+
"?,?;": {1, 2},
15+
"?;": {3},
16+
"?,?,?;": {4, 5, 6},
17+
}
18+
assertEqual(t, expected, actual)
19+
}
20+
21+
func assertEqual(t *testing.T, expected, actual any) {
22+
if reflect.DeepEqual(expected, actual) {
23+
return
24+
}
25+
t.Helper()
26+
t.Errorf("\n"+
27+
"expected: %v\n"+
28+
"actual: %v",
29+
expected,
30+
actual,
31+
)
32+
}

0 commit comments

Comments
 (0)