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

Function TestHasOneAssociationForSlice

tests/associations_has_one_test.go:100–139  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

98}
99
100func TestHasOneAssociationForSlice(t *testing.T) {
101 users := []User{
102 *GetUser("slice-hasone-1", Config{Account: true}),
103 *GetUser("slice-hasone-2", Config{Account: false}),
104 *GetUser("slice-hasone-3", Config{Account: true}),
105 }
106
107 DB.Create(&users)
108
109 // Count
110 AssertAssociationCount(t, users, "Account", 2, "")
111
112 // Find
113 var accounts []Account
114 if DB.Model(&users).Association("Account").Find(&accounts); len(accounts) != 2 {
115 t.Errorf("accounts count should be %v, but got %v", 3, len(accounts))
116 }
117
118 // Append
119 DB.Model(&users).Association("Account").Append(
120 &Account{Number: "account-slice-append-1"},
121 &Account{Number: "account-slice-append-2"},
122 &Account{Number: "account-slice-append-3"},
123 )
124
125 AssertAssociationCount(t, users, "Account", 3, "After Append")
126
127 // Replace -> same as append
128
129 // Delete
130 if err := DB.Model(&users).Association("Account").Delete(&users[0].Account); err != nil {
131 t.Errorf("no error should happened when deleting account, but got %v", err)
132 }
133
134 AssertAssociationCount(t, users, "Account", 2, "after delete")
135
136 // Clear
137 DB.Model(&users).Association("Account").Clear()
138 AssertAssociationCount(t, users, "Account", 0, "After Clear")
139}
140
141func TestPolymorphicHasOneAssociation(t *testing.T) {
142 pet := Pet{Name: "hasone", Toy: Toy{Name: "toy-has-one"}}

Callers

nothing calls this directly

Calls 9

GetUserFunction · 0.85
AssertAssociationCountFunction · 0.85
ModelMethod · 0.80
AppendMethod · 0.80
ClearMethod · 0.80
CreateMethod · 0.65
FindMethod · 0.65
DeleteMethod · 0.65
AssociationMethod · 0.45

Tested by

no test coverage detected