2 * @author Graeme Rocher
7 package org
.codehaus
.groovy
.grails
.orm
.hibernate
9 import org
.codehaus
.groovy
.grails
.commons
.test
.AbstractGrailsMockTests
11 class ManyToManyMappedByTests
extends AbstractGrailsHibernateTests
{
13 protected void onSetUp() {
15 class ManyToManyMappedByBook implements Serializable{
20 ManyToManyMappedByAuthor creator
23 static hasMany = [d: ManyToManyMappedByAuthor]
24 static belongsTo = [ManyToManyMappedByAuthor]
27 class ManyToManyMappedByAuthor implements Serializable {
32 static hasMany = [books: ManyToManyMappedByBook]
33 static mappedBy = [books:'d
']
40 def bookClass
= ga
.getDomainClass("ManyToManyMappedByBook")
41 def authorClass
= ga
.getDomainClass("ManyToManyMappedByAuthor")
43 assert bookClass
.getPropertyByName("d").manyToMany
44 assert bookClass
.getPropertyByName("d").bidirectional
45 assertEquals(authorClass
.getPropertyByName("books"), bookClass
.getPropertyByName("d").otherSide
)
46 assert authorClass
.getPropertyByName("books").manyToMany
47 assert authorClass
.getPropertyByName("books").bidirectional
51 def bookClass
= ga
.getDomainClass("ManyToManyMappedByBook").clazz
52 def authorClass
= ga
.getDomainClass("ManyToManyMappedByAuthor").clazz
55 assert authorClass
.newInstance(email
:"foo@bar.com").save(flush
:true)
57 def a
= authorClass
.get(1)
59 def book
= bookClass
.newInstance(creator
:a
, title
:"The Stand")
66 a
= authorClass
.get(1)
68 assertEquals
1, a
.books
.size()
71 book
= bookClass
.get(1)
74 assertEquals
1, book
.d
.size()