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

Function TestDeleteWithTable

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

Source from the content-addressed store, hash-verified

59}
60
61func TestDeleteWithTable(t *testing.T) {
62 type UserWithDelete struct {
63 gorm.Model
64 Name string
65 }
66
67 DB.Table("deleted_users").Migrator().DropTable(UserWithDelete{})
68 DB.Table("deleted_users").AutoMigrate(UserWithDelete{})
69
70 user := UserWithDelete{Name: "delete1"}
71 DB.Table("deleted_users").Create(&user)
72
73 var result UserWithDelete
74 if err := DB.Table("deleted_users").First(&result).Error; err != nil {
75 t.Errorf("failed to find deleted user, got error %v", err)
76 }
77
78 AssertEqual(t, result, user)
79
80 if err := DB.Table("deleted_users").Delete(&result).Error; err != nil {
81 t.Errorf("failed to delete user, got error %v", err)
82 }
83
84 var result2 UserWithDelete
85 if err := DB.Table("deleted_users").First(&result2, user.ID).Error; !errors.Is(err, gorm.ErrRecordNotFound) {
86 t.Errorf("should raise record not found error, but got error %v", err)
87 }
88
89 var result3 UserWithDelete
90 if err := DB.Table("deleted_users").Unscoped().First(&result3, user.ID).Error; err != nil {
91 t.Fatalf("failed to find record, got error %v", err)
92 }
93
94 if err := DB.Table("deleted_users").Unscoped().Delete(&result).Error; err != nil {
95 t.Errorf("failed to delete user with unscoped, got error %v", err)
96 }
97
98 var result4 UserWithDelete
99 if err := DB.Table("deleted_users").Unscoped().First(&result4, user.ID).Error; !errors.Is(err, gorm.ErrRecordNotFound) {
100 t.Errorf("should raise record not found error, but got error %v", err)
101 }
102}
103
104func TestInlineCondDelete(t *testing.T) {
105 user1 := *GetUser("inline_delete_1", Config{})

Callers

nothing calls this directly

Calls 9

DropTableMethod · 0.65
MigratorMethod · 0.65
TableMethod · 0.65
AutoMigrateMethod · 0.65
CreateMethod · 0.65
FirstMethod · 0.65
DeleteMethod · 0.65
AssertEqualFunction · 0.50
UnscopedMethod · 0.45

Tested by

no test coverage detected