| 211 | } |
| 212 | |
| 213 | func TestBulkCreatePtrDataWithAssociations(t *testing.T) { |
| 214 | users := []*User{ |
| 215 | GetUser("bulk_ptr_1", Config{Account: true, Pets: 2, Toys: 3, Company: true, Manager: true, Team: 0, Languages: 1, Friends: 1}), |
| 216 | GetUser("bulk_ptr_2", Config{Account: false, Pets: 2, Toys: 4, Company: false, Manager: false, Team: 1, Languages: 3, Friends: 5}), |
| 217 | GetUser("bulk_ptr_3", Config{Account: true, Pets: 0, Toys: 3, Company: true, Manager: false, Team: 4, Languages: 0, Friends: 1}), |
| 218 | GetUser("bulk_ptr_4", Config{Account: true, Pets: 3, Toys: 0, Company: false, Manager: true, Team: 0, Languages: 3, Friends: 0}), |
| 219 | GetUser("bulk_ptr_5", Config{Account: false, Pets: 0, Toys: 3, Company: true, Manager: false, Team: 1, Languages: 3, Friends: 1}), |
| 220 | GetUser("bulk_ptr_6", Config{Account: true, Pets: 4, Toys: 3, Company: false, Manager: true, Team: 1, Languages: 3, Friends: 0}), |
| 221 | GetUser("bulk_ptr_7", Config{Account: true, Pets: 1, Toys: 3, Company: true, Manager: true, Team: 4, Languages: 3, Friends: 1}), |
| 222 | GetUser("bulk_ptr_8", Config{Account: false, Pets: 0, Toys: 0, Company: false, Manager: false, Team: 0, Languages: 0, Friends: 0}), |
| 223 | } |
| 224 | |
| 225 | if err := DB.Create(&users).Error; err != nil { |
| 226 | t.Fatalf("errors happened when create: %v", err) |
| 227 | } |
| 228 | |
| 229 | var userIDs []uint |
| 230 | for _, user := range users { |
| 231 | userIDs = append(userIDs, user.ID) |
| 232 | CheckUser(t, *user, *user) |
| 233 | } |
| 234 | |
| 235 | var users2 []User |
| 236 | DB.Preload("Account").Preload("Pets").Preload("Toys").Preload("Company").Preload("Manager").Preload("Team").Preload("Languages").Preload("Friends").Find(&users2, "id IN ?", userIDs) |
| 237 | for idx, user := range users2 { |
| 238 | CheckUser(t, user, *users[idx]) |
| 239 | } |
| 240 | } |
| 241 | |
| 242 | func TestPolymorphicHasOne(t *testing.T) { |
| 243 | t.Run("Struct", func(t *testing.T) { |