2 * Class description here.
4 * @author Graeme Rocher
7 * Created: Jul 23, 2007
12 package org
.codehaus
.groovy
.grails
.orm
.hibernate
14 import org
.codehaus
.groovy
.grails
.commons
.GrailsDomainClass
16 class CascadingDeleteBehaviourTests
extends AbstractGrailsHibernateTests
{
20 void testDeleteToOne() {
21 def companyClass
= ga
.getDomainClass("Company")
22 def projectClass
= ga
.getDomainClass("Project")
23 def memberClass
= ga
.getDomainClass("Member")
24 def c
= companyClass
.newInstance()
25 def p
= projectClass
.newInstance()
26 def m
= memberClass
.newInstance()
37 assertEquals
1, companyClass
.clazz
.count()
38 assertEquals
0, memberClass
.clazz
.count()
39 assertEquals
0, projectClass
.clazz
.count()
43 void testDeleteToManyUnidirectional() {
44 def companyClass
= ga
.getDomainClass("Company")
45 def locationClass
= ga
.getDomainClass("Location")
46 def personClass
= ga
.getDomainClass("Person")
48 def c
= companyClass
.newInstance()
50 c
.addToLocations(locationClass
.newInstance())
51 c
.addToPeople(personClass
.newInstance())
55 assertEquals
1, companyClass
.clazz
.count()
56 assertEquals
1, locationClass
.clazz
.count()
57 assertEquals
1, personClass
.clazz
.count()
62 assertEquals
0, companyClass
.clazz
.count()
63 assertEquals
1, locationClass
.clazz
.count()
64 assertEquals
0, personClass
.clazz
.count()
68 void testDomainModel() {
69 GrailsDomainClass companyClass
= ga
.getDomainClass("Company")
70 GrailsDomainClass memberClass
= ga
.getDomainClass("Member")
71 GrailsDomainClass projectClass
= ga
.getDomainClass("Project")
72 GrailsDomainClass locationClass
= ga
.getDomainClass("Location")
73 GrailsDomainClass personClass
= ga
.getDomainClass("Person")
76 assert !companyClass
.isOwningClass(memberClass
.clazz
)
77 assert !companyClass
.isOwningClass(projectClass
.clazz
)
78 assert !companyClass
.isOwningClass(locationClass
.clazz
)
79 assert !companyClass
.isOwningClass(personClass
.clazz
)
81 assert !projectClass
.isOwningClass(companyClass
.clazz
)
82 assert !projectClass
.isOwningClass(memberClass
.clazz
)
83 assert !projectClass
.isOwningClass(locationClass
.clazz
)
84 assert !projectClass
.isOwningClass(personClass
.clazz
)
86 assert memberClass
.isOwningClass(projectClass
.clazz
)
87 assert !memberClass
.isOwningClass(companyClass
.clazz
)
88 assert !memberClass
.isOwningClass(personClass
.clazz
)
89 assert !memberClass
.isOwningClass(locationClass
.clazz
)
91 assert personClass
.isOwningClass(companyClass
.clazz
)
92 assert !personClass
.isOwningClass(locationClass
.clazz
)
93 assert !personClass
.isOwningClass(memberClass
.clazz
)
94 assert !personClass
.isOwningClass(projectClass
.clazz
)
100 this.gcl
.parseClass('''
105 static hasMany = [locations:Location, people:Person]
112 static belongsTo = Company
129 static belongsTo = Project