GRAILS-1019: Allowing expressions to be used with the 'disabled' attribute for g...
[grails.git] / test / groovy / org / codehaus / groovy / grails / orm / hibernate / EagerFindByQueryTests.groovy
blobb763f14ead2f8bf8685c7d72e5b4fe67c09a6d73
1 package org.codehaus.groovy.grails.orm.hibernate
3 import org.hibernate.Hibernate
5 /**
6 * @author Graeme Rocher
7 * @since 1.0
8 *
9 * Created: May 28, 2008
11 class EagerFindByQueryTests extends AbstractGrailsHibernateTests{
13 protected void onSetUp() {
14 gcl.parseClass('''
15 class EagerFindByQueryBookmark {
16 Long id
17 Long version
18 String url
19 Set tags
20 static hasMany = [tags:EagerFindByQueryTag]
22 class EagerFindByQueryTag {
23 Long id
24 Long version
25 String name
27 ''')
31 void testDefaultLazyFetchingGet() {
33 def bookmarkClass = ga.getDomainClass("EagerFindByQueryBookmark").clazz
34 def tagClass = ga.getDomainClass("EagerFindByQueryTag").clazz
36 assert bookmarkClass.newInstance(url:"http://grails.org")
37 .addToTags(name:"groovy")
38 .addToTags(name:"web")
39 .addToTags(name:"development")
40 .save(flush:true)
42 session.clear()
44 def bookmark = bookmarkClass.get(1)
46 assertFalse Hibernate.isInitialized(bookmark.tags)
49 void testDefaultLazyFetchingFindBy() {
51 def bookmarkClass = ga.getDomainClass("EagerFindByQueryBookmark").clazz
52 def tagClass = ga.getDomainClass("EagerFindByQueryTag").clazz
54 assert bookmarkClass.newInstance(url:"http://grails.org")
55 .addToTags(name:"groovy")
56 .addToTags(name:"web")
57 .addToTags(name:"development")
58 .save(flush:true)
60 session.clear()
62 def bookmark = bookmarkClass.findByUrl("http://grails.org")
64 assertFalse Hibernate.isInitialized(bookmark.tags)
68 void testEagerFetchingFindBy() {
69 def bookmarkClass = ga.getDomainClass("EagerFindByQueryBookmark").clazz
70 def tagClass = ga.getDomainClass("EagerFindByQueryTag").clazz
72 assert bookmarkClass.newInstance(url:"http://grails.org")
73 .addToTags(name:"groovy")
74 .addToTags(name:"web")
75 .addToTags(name:"development")
76 .save(flush:true)
78 session.clear()
80 def bookmark = bookmarkClass.findByUrl("http://grails.org",[fetch:[tags:'eager']])
82 assertTrue Hibernate.isInitialized(bookmark.tags)
85 void testEagerFetchingFindAllBy() {
86 def bookmarkClass = ga.getDomainClass("EagerFindByQueryBookmark").clazz
87 def tagClass = ga.getDomainClass("EagerFindByQueryTag").clazz
89 assert bookmarkClass.newInstance(url:"http://grails.org")
90 .addToTags(name:"groovy")
91 .addToTags(name:"web")
92 .addToTags(name:"development")
93 .save(flush:true)
95 session.clear()
97 def bookmarks = bookmarkClass.findAllByUrl("http://grails.org",[fetch:[tags:'eager']])
98 def bookmark = bookmarks[0]
100 assertTrue Hibernate.isInitialized(bookmark.tags)