MCPcopy
hub / github.com/go-gorm/gorm / TestRow

Function TestRow

tests/sql_builder_test.go:14–46  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

12)
13
14func TestRow(t *testing.T) {
15 user1 := User{Name: "RowUser1", Age: 1}
16 user2 := User{Name: "RowUser2", Age: 10}
17 user3 := User{Name: "RowUser3", Age: 20}
18 DB.Save(&user1).Save(&user2).Save(&user3)
19
20 row := DB.Table("users").Where("name = ?", user2.Name).Select("age").Row()
21
22 var age int64
23 if err := row.Scan(&age); err != nil {
24 t.Fatalf("Failed to scan age, got %v", err)
25 }
26
27 if age != 10 {
28 t.Errorf("Scan with Row, age expects: %v, got %v", user2.Age, age)
29 }
30
31 table := "gorm.users"
32 if DB.Dialector.Name() != "mysql" || isTiDB() {
33 table = "users" // other databases doesn't support select with `database.table`
34 }
35
36 DB.Table(table).Where(map[string]interface{}{"name": user2.Name}).Update("age", 20)
37
38 row = DB.Table(table+" as u").Where("u.name = ?", user2.Name).Select("age").Row()
39 if err := row.Scan(&age); err != nil {
40 t.Fatalf("Failed to scan age, got %v", err)
41 }
42
43 if age != 20 {
44 t.Errorf("Scan with Row, age expects: %v, got %v", user2.Age, age)
45 }
46}
47
48func TestRows(t *testing.T) {
49 user1 := User{Name: "RowsUser1", Age: 1}

Callers

nothing calls this directly

Calls 9

isTiDBFunction · 0.85
SaveMethod · 0.80
RowMethod · 0.65
SelectMethod · 0.65
WhereMethod · 0.65
TableMethod · 0.65
ScanMethod · 0.65
NameMethod · 0.65
UpdateMethod · 0.65

Tested by

no test coverage detected