Вы можете переопределить метод beforeDelete в своем доменном классе, используя Groovy metaClass.
Класс домена:
class Person {
String name
boolean deleted
def beforeDelete() {
println "Deleting Person ${id}"
deleted = true
return false
}
}
Модульный тест:
void testBeforeDelete() {
mockDomain(Person)
def p = new Person(name:"test")
p.save()
assertEquals false, p.deleted
p.delete()
assertEquals true, p.deleted
}
- Вывод из testBeforeDelete -
Удаление лица 1
void testBeforeDeleteOverrideBeforeDelete() {
mockDomain(Person)
Person.metaClass.'static'.beforeDelete = {println 'Do not touch me'}
def p = new Person(name:"test")
p.save()
assertEquals false, p.deleted
p.delete()
assertEquals true, p.deleted
}
- вывод из testBeforeDeleteOverrideBeforeDelete -
Не прикасайся ко мне