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

Function TestJoinArgsWithDB

tests/joins_test.go:290–331  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

288}
289
290func TestJoinArgsWithDB(t *testing.T) {
291 user := *GetUser("joins-args-db", Config{Pets: 2})
292 DB.Save(&user)
293
294 // test where
295 var user1 User
296 onQuery := DB.Where(&Pet{Name: "joins-args-db_pet_2"})
297 if err := DB.Joins("NamedPet", onQuery).Where("users.name = ?", user.Name).First(&user1).Error; err != nil {
298 t.Fatalf("Failed to load with joins on, got error: %v", err)
299 }
300
301 AssertEqual(t, user1.NamedPet.Name, "joins-args-db_pet_2")
302
303 // test where and omit
304 onQuery2 := DB.Where(&Pet{Name: "joins-args-db_pet_2"}).Omit("Name")
305 var user2 User
306 if err := DB.Joins("NamedPet", onQuery2).Where("users.name = ?", user.Name).First(&user2).Error; err != nil {
307 t.Fatalf("Failed to load with joins on, got error: %v", err)
308 }
309 AssertEqual(t, user2.NamedPet.ID, user1.NamedPet.ID)
310 AssertEqual(t, user2.NamedPet.Name, "")
311
312 // test where and select
313 onQuery3 := DB.Where(&Pet{Name: "joins-args-db_pet_2"}).Select("Name")
314 var user3 User
315 if err := DB.Joins("NamedPet", onQuery3).Where("users.name = ?", user.Name).First(&user3).Error; err != nil {
316 t.Fatalf("Failed to load with joins on, got error: %v", err)
317 }
318 AssertEqual(t, user3.NamedPet.ID, 0)
319 AssertEqual(t, user3.NamedPet.Name, "joins-args-db_pet_2")
320
321 // test select
322 onQuery4 := DB.Select("ID")
323 var user4 User
324 if err := DB.Joins("NamedPet", onQuery4).Where("users.name = ?", user.Name).First(&user4).Error; err != nil {
325 t.Fatalf("Failed to load with joins on, got error: %v", err)
326 }
327 if user4.NamedPet.ID == 0 {
328 t.Fatal("Pet ID can not be empty")
329 }
330 AssertEqual(t, user4.NamedPet.Name, "")
331}
332
333func TestNestedJoins(t *testing.T) {
334 users := []User{

Callers

nothing calls this directly

Calls 8

GetUserFunction · 0.85
SaveMethod · 0.80
WhereMethod · 0.65
FirstMethod · 0.65
JoinsMethod · 0.65
OmitMethod · 0.65
SelectMethod · 0.65
AssertEqualFunction · 0.50

Tested by

no test coverage detected