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

Function TestOmitWithUpdate

tests/update_test.go:375–423  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

373}
374
375func TestOmitWithUpdate(t *testing.T) {
376 user := *GetUser("omit_update", Config{Account: true, Pets: 3, Toys: 3, Company: true, Manager: true, Team: 3, Languages: 3, Friends: 4})
377 DB.Create(&user)
378
379 var result User
380 DB.First(&result, user.ID)
381
382 user2 := *GetUser("omit_update_new", Config{Account: true, Pets: 3, Toys: 3, Company: true, Manager: true, Team: 3, Languages: 3, Friends: 4})
383 result.Name = user2.Name
384 result.Age = 50
385 result.Account = user2.Account
386 result.Pets = user2.Pets
387 result.Toys = user2.Toys
388 result.Company = user2.Company
389 result.Manager = user2.Manager
390 result.Team = user2.Team
391 result.Languages = user2.Languages
392 result.Friends = user2.Friends
393
394 DB.Omit("Name", "Account", "Toys", "Manager", "ManagerID", "Languages").Save(&result)
395
396 var result2 User
397 DB.Preload("Account").Preload("Pets").Preload("Toys").Preload("Company").Preload("Manager").Preload("Team").Preload("Languages").Preload("Friends").First(&result2, user.ID)
398
399 result.Pets = append(user.Pets, result.Pets...)
400 result.Team = append(user.Team, result.Team...)
401 result.Friends = append(user.Friends, result.Friends...)
402
403 sort.Slice(result.Pets, func(i, j int) bool {
404 return result.Pets[i].ID < result.Pets[j].ID
405 })
406 sort.Slice(result.Team, func(i, j int) bool {
407 return result.Team[i].ID < result.Team[j].ID
408 })
409 sort.Slice(result.Friends, func(i, j int) bool {
410 return result.Friends[i].ID < result.Friends[j].ID
411 })
412 sort.Slice(result2.Pets, func(i, j int) bool {
413 return result2.Pets[i].ID < result2.Pets[j].ID
414 })
415 sort.Slice(result2.Team, func(i, j int) bool {
416 return result2.Team[i].ID < result2.Team[j].ID
417 })
418 sort.Slice(result2.Friends, func(i, j int) bool {
419 return result2.Friends[i].ID < result2.Friends[j].ID
420 })
421
422 AssertObjEqual(t, result2, result, "Age", "Pets", "Company", "CompanyID", "Team", "Friends")
423}
424
425func TestOmitWithUpdateWithMap(t *testing.T) {
426 user := *GetUser("omit_update_map", Config{Account: true, Pets: 3, Toys: 3, Company: true, Manager: true, Team: 3, Languages: 3, Friends: 4})

Callers

nothing calls this directly

Calls 7

GetUserFunction · 0.85
AssertObjEqualFunction · 0.85
SaveMethod · 0.80
CreateMethod · 0.65
FirstMethod · 0.65
OmitMethod · 0.65
PreloadMethod · 0.65

Tested by

no test coverage detected