@@ -1133,6 +1133,54 @@ func TestCreatedUpdated2(t *testing.T) {
1133
1133
assert .True (t , s2 .UpdateAt .Unix () > s2 .CreateAt .Unix ())
1134
1134
}
1135
1135
1136
+ func TestDeletedUpdate (t * testing.T ) {
1137
+ assert .NoError (t , prepareEngine ())
1138
+
1139
+ type DeletedUpdatedStruct struct {
1140
+ Id int64
1141
+ Name string
1142
+ DeletedAt time.Time `xorm:"deleted"`
1143
+ }
1144
+
1145
+ assertSync (t , new (DeletedUpdatedStruct ))
1146
+
1147
+ var s = DeletedUpdatedStruct {
1148
+ Name : "test" ,
1149
+ }
1150
+ cnt , err := testEngine .Insert (& s )
1151
+ assert .NoError (t , err )
1152
+ assert .EqualValues (t , 1 , cnt )
1153
+
1154
+ cnt , err = testEngine .ID (s .Id ).Delete (& DeletedUpdatedStruct {})
1155
+ assert .NoError (t , err )
1156
+ assert .EqualValues (t , 1 , cnt )
1157
+
1158
+ s .DeletedAt = time.Time {}
1159
+ cnt , err = testEngine .Unscoped ().Nullable ("deleted_at" ).Update (& s )
1160
+ assert .NoError (t , err )
1161
+ assert .EqualValues (t , 1 , cnt )
1162
+
1163
+ var s1 DeletedUpdatedStruct
1164
+ has , err := testEngine .ID (s .Id ).Get (& s1 )
1165
+ assert .EqualValues (t , true , has )
1166
+
1167
+ cnt , err = testEngine .ID (s .Id ).Delete (& DeletedUpdatedStruct {})
1168
+ assert .NoError (t , err )
1169
+ assert .EqualValues (t , 1 , cnt )
1170
+
1171
+ cnt , err = testEngine .ID (s .Id ).Cols ("deleted_at" ).Update (& DeletedUpdatedStruct {})
1172
+ assert .EqualValues (t , "No content found to be updated" , err .Error ())
1173
+ assert .EqualValues (t , 0 , cnt )
1174
+
1175
+ cnt , err = testEngine .ID (s .Id ).Unscoped ().Cols ("deleted_at" ).Update (& DeletedUpdatedStruct {})
1176
+ assert .NoError (t , err )
1177
+ assert .EqualValues (t , 1 , cnt )
1178
+
1179
+ var s2 DeletedUpdatedStruct
1180
+ has , err = testEngine .ID (s .Id ).Get (& s2 )
1181
+ assert .EqualValues (t , true , has )
1182
+ }
1183
+
1136
1184
func TestUpdateMapCondition (t * testing.T ) {
1137
1185
assert .NoError (t , prepareEngine ())
1138
1186
0 commit comments