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

Function TestDeleteSliceWithAssociations

tests/delete_test.go:180–207  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

178}
179
180func TestDeleteSliceWithAssociations(t *testing.T) {
181 users := []User{
182 *GetUser("delete_slice_with_associations1", Config{Account: true, Pets: 4, Toys: 1, Company: true, Manager: true, Team: 1, Languages: 1, Friends: 4}),
183 *GetUser("delete_slice_with_associations2", Config{Account: true, Pets: 3, Toys: 2, Company: true, Manager: true, Team: 2, Languages: 2, Friends: 3}),
184 *GetUser("delete_slice_with_associations3", Config{Account: true, Pets: 2, Toys: 3, Company: true, Manager: true, Team: 3, Languages: 3, Friends: 2}),
185 *GetUser("delete_slice_with_associations4", Config{Account: true, Pets: 1, Toys: 4, Company: true, Manager: true, Team: 4, Languages: 4, Friends: 1}),
186 }
187
188 if err := DB.Create(users).Error; err != nil {
189 t.Fatalf("failed to create user, got error %v", err)
190 }
191
192 if err := DB.Select(clause.Associations).Delete(&users).Error; err != nil {
193 t.Fatalf("failed to delete user, got error %v", err)
194 }
195
196 for key, value := range map[string]int64{"Account": 4, "Pets": 10, "Toys": 10, "Company": 4, "Manager": 4, "Team": 10, "Languages": 0, "Friends": 0} {
197 if count := DB.Unscoped().Model(&users).Association(key).Count(); count != value {
198 t.Errorf("user's %v expects: %v, got %v", key, value, count)
199 }
200 }
201
202 for key, value := range map[string]int64{"Account": 0, "Pets": 0, "Toys": 0, "Company": 4, "Manager": 4, "Team": 0, "Languages": 0, "Friends": 0} {
203 if count := DB.Model(&users).Association(key).Count(); count != value {
204 t.Errorf("user's %v expects: %v, got %v", key, value, count)
205 }
206 }
207}
208
209// only sqlite, postgres, gaussdb, sqlserver support returning
210func TestSoftDeleteReturning(t *testing.T) {

Callers

nothing calls this directly

Calls 8

GetUserFunction · 0.85
ModelMethod · 0.80
CreateMethod · 0.65
DeleteMethod · 0.65
SelectMethod · 0.65
CountMethod · 0.65
AssociationMethod · 0.45
UnscopedMethod · 0.45

Tested by

no test coverage detected