2 * Copyright 2004-2005 the original author or authors.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
16 package org
.codehaus
.groovy
.grails
.plugins
;
18 import org
.codehaus
.groovy
.grails
.commons
.spring
.DefaultRuntimeSpringConfiguration
;
19 import org
.codehaus
.groovy
.grails
.commons
.spring
.RuntimeSpringConfiguration
;
20 import org
.codehaus
.groovy
.grails
.commons
.test
.AbstractGrailsMockTests
;
21 import org
.codehaus
.groovy
.grails
.plugins
.exceptions
.PluginException
;
22 import org
.springframework
.context
.ApplicationContext
;
25 * Test for the DefaultGrailsPlugin class
27 * @author Graeme Rocher
30 public class DefaultGrailsPluginTests
extends AbstractGrailsMockTests
{
33 private Class versioned
;
34 private Class notVersion
;
35 private Class notPluginClass
;
36 private Class disabled
;
37 private Class observed
;
38 private Class camelCased
;
40 protected void onTearDown()
44 notPluginClass
= null;
48 //To change body of overridden methods use File | Settings | File Templates.
51 protected void onSetUp() {
52 versioned
= gcl
.parseClass("class MyGrailsPlugin {\n" +
53 "def version = 1.1;" +
54 "def doWithSpring = {" +
55 "classEditor(org.springframework.beans.propertyeditors.ClassEditor,application.classLoader )" +
57 "def doWithApplicationContext = { ctx ->" +
58 "assert ctx != null" +
61 notVersion
= gcl
.parseClass("class AnotherGrailsPlugin {\n" +
63 notPluginClass
= gcl
.parseClass("class SomeOtherPlugin {\n" +
64 "def version = 1.4;" +
67 disabled
= gcl
.parseClass("class DisabledGrailsPlugin {" +
68 "def version = 1.1; " +
69 "def status = 'disabled'; }");
71 observed
= gcl
.parseClass("class ObservingGrailsPlugin {" +
72 "def observe = ['another'];" +
73 "def version = 1.1; " +
74 "def status = 'disabled'; }");
76 camelCased
= gcl
.parseClass("class CamelCasedGrailsPlugin {" +
77 "def version = 2.1; " +
78 "def status = 'disabled'; }");
81 public void testDefaultGrailsPlugin() {
82 GrailsPlugin versionPlugin
= new DefaultGrailsPlugin(versioned
, ga
);
85 GrailsPlugin notVersionPlugin
= new DefaultGrailsPlugin(notVersion
, ga
);
86 fail("Should have thrown IllegalArgumentException for unversioned plugin");
87 } catch (PluginException e
) {
92 GrailsPlugin notPlugin
= new DefaultGrailsPlugin(notPluginClass
, ga
);
93 fail("Should have thrown an exception for invalid plugin");
94 } catch (IllegalArgumentException e
) {
99 public void testGetPluginPath() {
100 GrailsPlugin versionPlugin
= new DefaultGrailsPlugin(versioned
, ga
);
102 assertEquals("/plugins/my-1.1", versionPlugin
.getPluginPath());
104 GrailsPlugin camelCasedPlugin
= new DefaultGrailsPlugin(camelCased
, ga
);
106 assertEquals("/plugins/camel-cased-2.1", camelCasedPlugin
.getPluginPath());
109 public void testDisabledPlugin() {
110 GrailsPlugin disabledPlugin
= new DefaultGrailsPlugin(disabled
, ga
);
111 GrailsPlugin enabledPlugin
= new DefaultGrailsPlugin(versioned
, ga
);
115 assertFalse(disabledPlugin
.isEnabled());
116 assertTrue(enabledPlugin
.isEnabled());
119 public void testDoWithApplicationContext() {
120 GrailsPlugin versionPlugin
= new DefaultGrailsPlugin(versioned
, ga
);
122 RuntimeSpringConfiguration springConfig
= new DefaultRuntimeSpringConfiguration();
123 versionPlugin
.doWithRuntimeConfiguration(springConfig
);
125 ApplicationContext ctx
= springConfig
.getApplicationContext();
127 assertTrue(ctx
.containsBean("classEditor"));
129 versionPlugin
.doWithApplicationContext(ctx
);
132 public void testDoWithRuntimeConfiguration() {
133 GrailsPlugin versionPlugin
= new DefaultGrailsPlugin(versioned
, ga
);
135 RuntimeSpringConfiguration springConfig
= new DefaultRuntimeSpringConfiguration();
136 versionPlugin
.doWithRuntimeConfiguration(springConfig
);
138 ApplicationContext ctx
= springConfig
.getApplicationContext();
140 assertTrue(ctx
.containsBean("classEditor"));
143 public void testGetName() {
144 GrailsPlugin versionPlugin
= new DefaultGrailsPlugin(versioned
, ga
);
145 assertEquals("my", versionPlugin
.getName());
148 public void testGetVersion() {
149 GrailsPlugin versionPlugin
= new DefaultGrailsPlugin(versioned
, ga
);
150 assertEquals("1.1", versionPlugin
.getVersion());
153 public void testObservers() {
155 GrailsPlugin observingPlugin
= new DefaultGrailsPlugin(observed
, ga
);
157 assertEquals(1, observingPlugin
.getObservedPluginNames().length
);
158 assertEquals("another", observingPlugin
.getObservedPluginNames()[0]);