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

Function TestUpsertWithSave

tests/upsert_test.go:185–245  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

183}
184
185func TestUpsertWithSave(t *testing.T) {
186 langs := []Language{
187 {Code: "upsert-save-1", Name: "Upsert-save-1"},
188 {Code: "upsert-save-2", Name: "Upsert-save-2"},
189 }
190
191 if err := DB.Save(&langs).Error; err != nil {
192 t.Errorf("Failed to create, got error %v", err)
193 }
194
195 for _, lang := range langs {
196 var result Language
197 if err := DB.First(&result, "code = ?", lang.Code).Error; err != nil {
198 t.Errorf("Failed to query lang, got error %v", err)
199 } else {
200 AssertEqual(t, result, lang)
201 }
202 }
203
204 for idx, lang := range langs {
205 lang.Name += "_new"
206 langs[idx] = lang
207 }
208
209 if err := DB.Save(&langs).Error; err != nil {
210 t.Errorf("Failed to upsert, got error %v", err)
211 }
212
213 for _, lang := range langs {
214 var result Language
215 if err := DB.First(&result, "code = ?", lang.Code).Error; err != nil {
216 t.Errorf("Failed to query lang, got error %v", err)
217 } else {
218 AssertEqual(t, result, lang)
219 }
220 }
221
222 lang := Language{Code: "upsert-save-3", Name: "Upsert-save-3"}
223 if err := DB.Save(&lang).Error; err != nil {
224 t.Errorf("Failed to create, got error %v", err)
225 }
226
227 var result Language
228 if err := DB.First(&result, "code = ?", lang.Code).Error; err != nil {
229 t.Errorf("Failed to query lang, got error %v", err)
230 } else {
231 AssertEqual(t, result, lang)
232 }
233
234 lang.Name += "_new"
235 if err := DB.Save(&lang).Error; err != nil {
236 t.Errorf("Failed to create, got error %v", err)
237 }
238
239 var result2 Language
240 if err := DB.First(&result2, "code = ?", lang.Code).Error; err != nil {
241 t.Errorf("Failed to query lang, got error %v", err)
242 } else {

Callers

nothing calls this directly

Calls 3

SaveMethod · 0.80
FirstMethod · 0.65
AssertEqualFunction · 0.50

Tested by

no test coverage detected