You can override the beforeDelete method in your domain class using the Groovy metaClass.
Domain Class:
class Person { String name boolean deleted def beforeDelete() { println "Deleting Person ${id}" deleted = true return false } }
Unit Test:
void testBeforeDelete() { mockDomain(Person) def p = new Person(name:"test") p.save() assertEquals false, p.deleted p.delete() assertEquals true, p.deleted }
- output from testBeforeDelete -
Removing a person 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 }
- output from testBeforeDeleteOverrideBeforeDelete -
Dont touch me
David betts
source share