Skip to content

Commit d85d858

Browse files
committed
cleanup
1 parent b6002bd commit d85d858

File tree

2 files changed

+69
-98
lines changed

2 files changed

+69
-98
lines changed
Lines changed: 27 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
/*
22
* Copyright 2004-2005 the original author or authors.
3-
*
3+
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
66
* You may obtain a copy of the License at
7-
*
7+
*
88
* http://www.apache.org/licenses/LICENSE-2.0
9-
*
9+
*
1010
* Unless required by applicable law or agreed to in writing, software
1111
* distributed under the License is distributed on an "AS IS" BASIS,
1212
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,6 +18,9 @@
1818
import groovy.lang.ExpandoMetaClass;
1919
import groovy.lang.GroovyClassLoader;
2020
import groovy.util.GroovyTestCase;
21+
22+
import java.io.IOException;
23+
2124
import org.codehaus.groovy.grails.commons.DefaultGrailsApplication;
2225
import org.codehaus.groovy.grails.commons.GrailsApplication;
2326
import org.codehaus.groovy.grails.commons.spring.GrailsRuntimeConfigurator;
@@ -28,16 +31,14 @@
2831
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
2932
import org.springframework.mock.web.MockServletContext;
3033

31-
import java.io.IOException;
32-
3334
/**
3435
* Abstract simple test harness for testing Grails Applications that just loads
35-
* the parsed classes into the GrailsApplication instance
36+
* the parsed classes into the GrailsApplication instance.
3637
*
3738
* @author Graeme Rocher
38-
*
3939
*/
4040
public abstract class AbstractGrailsMockTests extends GroovyTestCase {
41+
4142
/**
4243
* A GroovyClassLoader instance
4344
*/
@@ -48,6 +49,7 @@ public abstract class AbstractGrailsMockTests extends GroovyTestCase {
4849
public DefaultGrailsApplication ga;
4950
public MockApplicationContext ctx;
5051

52+
@Override
5153
protected final void setUp() throws Exception {
5254
ExpandoMetaClass.enableGlobally();
5355
super.setUp();
@@ -57,12 +59,13 @@ protected final void setUp() throws Exception {
5759
ctx.registerMockBean(GrailsRuntimeConfigurator.CLASS_LOADER_BEAN, gcl);
5860
onSetUp();
5961
ga = new DefaultGrailsApplication(gcl.getLoadedClasses(),gcl);
60-
62+
6163
ga.setApplicationContext(ctx);
6264
ga.initialise();
6365
ctx.registerMockBean(GrailsApplication.APPLICATION_ID, ga);
6466
}
65-
67+
68+
@Override
6669
protected final void tearDown() throws Exception {
6770
onTearDown();
6871

@@ -74,27 +77,27 @@ protected final void tearDown() throws Exception {
7477
super.tearDown();
7578
}
7679

77-
7880
protected void onSetUp() {
79-
}
81+
// implemented in subclasses
82+
}
8083

8184
protected void onTearDown() {
82-
85+
// implemented in subclasses
8386
}
8487

85-
protected MockServletContext createMockServletContext() {
86-
return new MockServletContext();
87-
}
88-
89-
protected MockApplicationContext createMockApplicationContext() {
90-
return new MockApplicationContext();
91-
}
92-
93-
protected Resource[] getResources(String pattern) throws IOException {
94-
return new PathMatchingResourcePatternResolver().getResources(pattern);
95-
}
88+
protected MockServletContext createMockServletContext() {
89+
return new MockServletContext();
90+
}
91+
92+
protected MockApplicationContext createMockApplicationContext() {
93+
return new MockApplicationContext();
94+
}
95+
96+
protected Resource[] getResources(String pattern) throws IOException {
97+
return new PathMatchingResourcePatternResolver().getResources(pattern);
98+
}
9699

97100
protected MessageSource createMessageSource() {
98-
return new StaticMessageSource();
101+
return new StaticMessageSource();
99102
}
100103
}
Lines changed: 42 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
package org.codehaus.groovy.grails.plugins.services;
22

3-
import org.codehaus.groovy.grails.commons.test.*
4-
import org.codehaus.groovy.grails.commons.*
5-
import org.codehaus.groovy.grails.commons.spring.*
6-
import org.codehaus.groovy.grails.plugins.*
3+
import org.codehaus.groovy.grails.commons.ConfigurationHolder
4+
import org.codehaus.groovy.grails.commons.spring.WebRuntimeSpringConfiguration
5+
import org.codehaus.groovy.grails.commons.test.AbstractGrailsMockTests
6+
import org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin
7+
import org.springframework.context.ApplicationContext
78
import org.springframework.transaction.NoTransactionException
89

910
class ServicesGrailsPluginTests extends AbstractGrailsMockTests {
1011

11-
void onSetUp() {
12+
void onSetUp() {
1213
def config = new ConfigSlurper().parse('''
1314
dataSource {
1415
pooled = true
@@ -20,20 +21,19 @@ class ServicesGrailsPluginTests extends AbstractGrailsMockTests {
2021
''')
2122

2223
ConfigurationHolder.config = config
23-
gcl.parseClass(
24-
"""
24+
gcl.parseClass """
2525
import org.springframework.transaction.annotation.*
2626
import org.springframework.transaction.interceptor.TransactionAspectSupport
2727
class SomeTransactionalService {
28-
boolean transactional = true
28+
boolean transactional = true
2929
def serviceMethod() {
3030
return "hello"
31-
}
31+
}
3232
}
3333
class NonTransactionalService {
34-
boolean transactional = false
34+
boolean transactional = false
3535
def serviceMethod() {
36-
return "goodbye"
36+
return "goodbye"
3737
}
3838
}
3939
@@ -55,17 +55,43 @@ class PerMethodTransactionalService {
5555
def methodTwo() {
5656
def status = TransactionAspectSupport.currentTransactionStatus()
5757
return "hasTransaction = \${status!=null}"
58-
5958
}
6059
}
61-
""")
62-
}
60+
"""
61+
}
6362

6463
protected void onTearDown() {
6564
ConfigurationHolder.config = null
6665
}
6766

6867
void testPerMethodTransactionAnnotations() {
68+
def appCtx = initializeContext()
69+
70+
def springService = appCtx.getBean("perMethodTransactionalService")
71+
assertEquals "hasTransaction = true", springService.methodOne()
72+
shouldFail(NoTransactionException) {
73+
springService.methodTwo()
74+
}
75+
}
76+
77+
void testSpringConfiguredService() {
78+
def appCtx = initializeContext()
79+
80+
def springService = appCtx.getBean("springTransactionalService")
81+
assertEquals "hasTransaction = true", springService.serviceMethod()
82+
}
83+
84+
void testServicesPlugin() {
85+
def appCtx = initializeContext()
86+
87+
assertTrue appCtx.containsBean("dataSource")
88+
assertTrue appCtx.containsBean("sessionFactory")
89+
assertTrue appCtx.containsBean("someTransactionalService")
90+
assertTrue appCtx.containsBean("nonTransactionalService")
91+
}
92+
93+
private ApplicationContext initializeContext() {
94+
6995
def corePluginClass = gcl.loadClass("org.codehaus.groovy.grails.plugins.CoreGrailsPlugin")
7096
def corePlugin = new DefaultGrailsPlugin(corePluginClass,ga)
7197
def dataSourcePluginClass = gcl.loadClass("org.codehaus.groovy.grails.plugins.datasource.DataSourceGrailsPlugin")
@@ -84,64 +110,6 @@ class PerMethodTransactionalService {
84110
def plugin = new DefaultGrailsPlugin(pluginClass, ga)
85111
plugin.doWithRuntimeConfiguration(springConfig)
86112

87-
def appCtx = springConfig.getApplicationContext()
88-
89-
def springService = appCtx.getBean("perMethodTransactionalService")
90-
assertEquals "hasTransaction = true", springService.methodOne()
91-
shouldFail(NoTransactionException) {
92-
springService.methodTwo()
93-
}
94-
}
95-
void testSpringConfiguredService() {
96-
def corePluginClass = gcl.loadClass("org.codehaus.groovy.grails.plugins.CoreGrailsPlugin")
97-
def corePlugin = new DefaultGrailsPlugin(corePluginClass,ga)
98-
def dataSourcePluginClass = gcl.loadClass("org.codehaus.groovy.grails.plugins.datasource.DataSourceGrailsPlugin")
99-
def dataSourcePlugin = new DefaultGrailsPlugin(dataSourcePluginClass, ga)
100-
def hibernatePluginClass = gcl.loadClass("org.codehaus.groovy.grails.orm.hibernate.MockHibernateGrailsPlugin")
101-
def hibernatePlugin = new DefaultGrailsPlugin(hibernatePluginClass, ga)
102-
103-
def springConfig = new WebRuntimeSpringConfiguration(ctx)
104-
springConfig.servletContext = createMockServletContext()
105-
106-
corePlugin.doWithRuntimeConfiguration(springConfig)
107-
dataSourcePlugin.doWithRuntimeConfiguration(springConfig)
108-
hibernatePlugin.doWithRuntimeConfiguration(springConfig)
109-
110-
def pluginClass = gcl.loadClass("org.codehaus.groovy.grails.plugins.services.ServicesGrailsPlugin")
111-
def plugin = new DefaultGrailsPlugin(pluginClass, ga)
112-
plugin.doWithRuntimeConfiguration(springConfig)
113-
114-
def appCtx = springConfig.getApplicationContext()
115-
116-
117-
def springService = appCtx.getBean("springTransactionalService")
118-
assertEquals "hasTransaction = true", springService.serviceMethod()
113+
springConfig.getApplicationContext()
119114
}
120-
121-
void testServicesPlugin() {
122-
123-
def corePluginClass = gcl.loadClass("org.codehaus.groovy.grails.plugins.CoreGrailsPlugin")
124-
def corePlugin = new DefaultGrailsPlugin(corePluginClass,ga)
125-
def dataSourcePluginClass = gcl.loadClass("org.codehaus.groovy.grails.plugins.datasource.DataSourceGrailsPlugin")
126-
def dataSourcePlugin = new DefaultGrailsPlugin(dataSourcePluginClass, ga)
127-
def hibernatePluginClass = gcl.loadClass("org.codehaus.groovy.grails.orm.hibernate.MockHibernateGrailsPlugin")
128-
def hibernatePlugin = new DefaultGrailsPlugin(hibernatePluginClass, ga)
129-
130-
def springConfig = new WebRuntimeSpringConfiguration(ctx)
131-
springConfig.servletContext = createMockServletContext()
132-
133-
corePlugin.doWithRuntimeConfiguration(springConfig)
134-
dataSourcePlugin.doWithRuntimeConfiguration(springConfig)
135-
hibernatePlugin.doWithRuntimeConfiguration(springConfig)
136-
137-
def pluginClass = gcl.loadClass("org.codehaus.groovy.grails.plugins.services.ServicesGrailsPlugin")
138-
def plugin = new DefaultGrailsPlugin(pluginClass, ga)
139-
plugin.doWithRuntimeConfiguration(springConfig)
140-
141-
def appCtx = springConfig.getApplicationContext()
142-
assert appCtx.containsBean("dataSource")
143-
assert appCtx.containsBean("sessionFactory")
144-
assert appCtx.containsBean("someTransactionalService")
145-
assert appCtx.containsBean("nonTransactionalService")
146-
}
147-
}
115+
}

0 commit comments

Comments
 (0)