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

Function TestGenericsExecAndUpdate

tests/generics_test.go:146–190  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

144}
145
146func TestGenericsExecAndUpdate(t *testing.T) {
147 ctx := context.Background()
148
149 name := "GenericsExec"
150 if err := gorm.G[User](DB).Exec(ctx, "INSERT INTO users(name) VALUES(?)", name); err != nil {
151 t.Fatalf("Exec insert failed: %v", err)
152 }
153
154 name2 := "GenericsExec2"
155 if err := gorm.G[User](DB).Exec(ctx, "INSERT INTO ?(name) VALUES(?)", clause.Table{Name: clause.CurrentTable}, name2); err != nil {
156 t.Fatalf("Exec insert failed: %v", err)
157 }
158
159 u, err := gorm.G[User](DB).Table("users as u").Where("u.name = ?", name).First(ctx)
160 if err != nil {
161 t.Fatalf("failed to find user, got error: %v", err)
162 } else if u.Name != name || u.ID == 0 {
163 t.Errorf("found invalid user, got %v", u)
164 }
165
166 name += "Update"
167 rows, err := gorm.G[User](DB).Where("id = ?", u.ID).Update(ctx, "name", name)
168 if rows != 1 {
169 t.Fatalf("failed to get affected rows, got %d, should be %d", rows, 1)
170 }
171
172 nu, err := gorm.G[User](DB).Where("name = ?", name).First(ctx)
173 if err != nil {
174 t.Fatalf("failed to find user, got error: %v", err)
175 } else if nu.Name != name || u.ID != nu.ID {
176 t.Fatalf("found invalid user, got %v, expect %v", nu.ID, u.ID)
177 }
178
179 rows, err = gorm.G[User](DB).Where("id = ?", u.ID).Updates(ctx, User{Name: "GenericsExecUpdates", Age: 18})
180 if rows != 1 {
181 t.Fatalf("failed to get affected rows, got %d, should be %d", rows, 1)
182 }
183
184 nu, err = gorm.G[User](DB).Where("id = ?", u.ID).Last(ctx)
185 if err != nil {
186 t.Fatalf("failed to find user, got error: %v", err)
187 } else if nu.Name != "GenericsExecUpdates" || nu.Age != 18 || u.ID != nu.ID {
188 t.Fatalf("found invalid user, got %v, expect %v", nu.ID, u.ID)
189 }
190}
191
192func TestGenericsRow(t *testing.T) {
193 ctx := context.Background()

Callers

nothing calls this directly

Calls 7

ExecMethod · 0.65
FirstMethod · 0.65
WhereMethod · 0.65
TableMethod · 0.65
UpdateMethod · 0.65
UpdatesMethod · 0.65
LastMethod · 0.65

Tested by

no test coverage detected