MCPcopy Create free account
hub / github.com/DATA-DOG/go-sqlmock / TestQueryMultiRows

Function TestQueryMultiRows

rows_go18_test.go:14–96  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

12)
13
14func TestQueryMultiRows(t *testing.T) {
15 t.Parallel()
16 db, mock, err := New()
17 if err != nil {
18 t.Errorf("an error '%s' was not expected when opening a stub database connection", err)
19 }
20 defer db.Close()
21
22 rs1 := NewRows([]string{"id", "title"}).AddRow(5, "hello world")
23 rs2 := NewRows([]string{"name"}).AddRow("gopher").AddRow("john").AddRow("jane").RowError(2, fmt.Errorf("error"))
24
25 mock.ExpectQuery("SELECT (.+) FROM articles WHERE id = \\?;SELECT name FROM users").
26 WithArgs(5).
27 WillReturnRows(rs1, rs2)
28
29 rows, err := db.Query("SELECT id, title FROM articles WHERE id = ?;SELECT name FROM users", 5)
30 if err != nil {
31 t.Errorf("error was not expected, but got: %v", err)
32 }
33 defer rows.Close()
34
35 if !rows.Next() {
36 t.Error("expected a row to be available in first result set")
37 }
38
39 var id int
40 var name string
41
42 err = rows.Scan(&id, &name)
43 if err != nil {
44 t.Errorf("error was not expected, but got: %v", err)
45 }
46
47 if id != 5 || name != "hello world" {
48 t.Errorf("unexpected row values id: %v name: %v", id, name)
49 }
50
51 if rows.Next() {
52 t.Error("was not expecting next row in first result set")
53 }
54
55 if !rows.NextResultSet() {
56 t.Error("had to have next result set")
57 }
58
59 if !rows.Next() {
60 t.Error("expected a row to be available in second result set")
61 }
62
63 err = rows.Scan(&name)
64 if err != nil {
65 t.Errorf("error was not expected, but got: %v", err)
66 }
67
68 if name != "gopher" {
69 t.Errorf("unexpected row name: %v", name)
70 }
71

Callers

nothing calls this directly

Calls 13

NewFunction · 0.85
NewRowsFunction · 0.85
AddRowMethod · 0.80
RowErrorMethod · 0.80
NextMethod · 0.80
NextResultSetMethod · 0.80
ExpectQueryMethod · 0.65
ExpectationsWereMetMethod · 0.65
CloseMethod · 0.45
WillReturnRowsMethod · 0.45
WithArgsMethod · 0.45
QueryMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…