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

Function TestPreparedStmtFromTransaction

tests/prepared_stmt_test.go:56–92  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

54}
55
56func TestPreparedStmtFromTransaction(t *testing.T) {
57 db := DB.Session(&gorm.Session{PrepareStmt: true, SkipDefaultTransaction: true})
58
59 tx := db.Begin()
60 defer func() {
61 if r := recover(); r != nil {
62 tx.Rollback()
63 }
64 }()
65 if err := tx.Error; err != nil {
66 t.Errorf("Failed to start transaction, got error %v\n", err)
67 }
68
69 if err := tx.Where("name=?", "zzjin").Delete(&User{}).Error; err != nil {
70 tx.Rollback()
71 t.Errorf("Failed to run one transaction, got error %v\n", err)
72 }
73
74 if err := tx.Create(&User{Name: "zzjin"}).Error; err != nil {
75 tx.Rollback()
76 t.Errorf("Failed to run one transaction, got error %v\n", err)
77 }
78
79 if err := tx.Commit().Error; err != nil {
80 t.Errorf("Failed to commit transaction, got error %v\n", err)
81 }
82
83 if result := db.Where("name=?", "zzjin").Delete(&User{}); result.Error != nil || result.RowsAffected != 1 {
84 t.Fatalf("Failed, got error: %v, rows affected: %v", result.Error, result.RowsAffected)
85 }
86
87 tx2 := db.Begin()
88 if result := tx2.Where("name=?", "zzjin").Delete(&User{}); result.Error != nil || result.RowsAffected != 0 {
89 t.Fatalf("Failed, got error: %v, rows affected: %v", result.Error, result.RowsAffected)
90 }
91 tx2.Commit()
92}
93
94func TestPreparedStmtLruFromTransaction(t *testing.T) {
95 db, _ := OpenTestConnection(&gorm.Config{PrepareStmt: true, PrepareStmtMaxSize: 10, PrepareStmtTTL: 20 * time.Second})

Callers

nothing calls this directly

Calls 7

SessionMethod · 0.80
BeginMethod · 0.80
RollbackMethod · 0.65
DeleteMethod · 0.65
WhereMethod · 0.65
CreateMethod · 0.65
CommitMethod · 0.65

Tested by

no test coverage detected