use of groovy.lang.GroovyClassLoader in project grails-core by grails.
the class GroovyPagesUriSupportTests method testGetViewURIForController.
@Test
public void testGetViewURIForController() throws IllegalAccessException, InstantiationException {
GroovyObject controller = (GroovyObject) new GroovyClassLoader().parseClass("class FooController { }").newInstance();
GroovyPagesUriSupport uriSupport = new GroovyPagesUriSupport();
assertEquals("/foo/bar.gsp", uriSupport.getViewURI(controller, "bar"));
assertEquals("/bar.gsp", uriSupport.getViewURI(controller, "../bar"));
assertEquals("/bar/foo.gsp", uriSupport.getViewURI(controller, "/bar/foo"));
assertEquals("/foo/bar/foo.gsp", uriSupport.getViewURI(controller, "bar/foo"));
}
use of groovy.lang.GroovyClassLoader in project grails-core by grails.
the class DefaultGrailsPluginManagerTests method testDependenciesWithDelayedLoadingWithVersionRangeStrings.
/**
* Test the known 1.0.2 failure where:
*
* mail 0.3 = has no deps
* quartz 0.3-SNAPSHOT: loadAfter = ['core', 'hibernate']
* emailconfirmation 0.4: dependsOn = [quartz:'0.3 > *', mail: '0.2 > *']
*
* ...and emailconfirmation is NOT loaded first.
*/
@Test
@SuppressWarnings("rawtypes")
public void testDependenciesWithDelayedLoadingWithVersionRangeStrings() {
GroovyClassLoader gcl = new GroovyClassLoader();
// These are defined in a specific order so that the one with the range dependencies
// is the first in the list, and its dependencies load after
first = gcl.parseClass("class FirstGrailsPlugin {\n" + "def version = \"0.4\"\n" + "def dependsOn = [second:'0.3 > *', third:'0.2 > *']\n" + "}");
second = gcl.parseClass("class SecondGrailsPlugin {\n" + "def version = \"0.3\"\n" + "def dependsOn = [:]\n" + "}");
third = gcl.parseClass("class ThirdGrailsPlugin {\n" + "def version = \"0.3-SNAPSHOT\"\n" + "def loadAfter = ['core', 'hibernate']\n" + "}");
GrailsApplication app = new DefaultGrailsApplication(new Class[] {}, gcl);
GenericApplicationContext parent = new GenericApplicationContext();
parent.getDefaultListableBeanFactory().registerSingleton(GrailsApplication.APPLICATION_ID, app);
DefaultGrailsPluginManager manager = new DefaultGrailsPluginManager(new Class[] { first, second, third }, app);
manager.setParentApplicationContext(parent);
manager.setPluginFilter(new IncludingPluginFilter("dataSource", "first", "second", "third"));
manager.loadPlugins();
List pluginList = manager.getPluginList();
assertNotNull(manager.getGrailsPlugin("first"));
assertNotNull(manager.getGrailsPlugin("second"));
// dataSource depends on core
assertNotNull(manager.getGrailsPlugin("core"));
// third depends on i18n
assertNotNull(manager.getGrailsPlugin("third"));
assertEquals(5, pluginList.size(), "Expected plugins not loaded. Expected " + 5 + " but got " + pluginList);
}
use of groovy.lang.GroovyClassLoader in project grails-core by grails.
the class GrailsClassTests method testAbstractGrailsClassNoPackage.
@Test
public void testAbstractGrailsClassNoPackage() throws Exception {
GroovyClassLoader cl = new GroovyClassLoader();
Class<?> clazz = cl.parseClass("class TestService { }");
GrailsClass grailsClass = new AbstractGrailsClass(clazz, "Service") {
};
assertEquals("TestService", clazz.getName());
assertEquals("Test", grailsClass.getName());
assertEquals("TestService", grailsClass.getFullName());
assertNotNull(grailsClass.newInstance());
}
use of groovy.lang.GroovyClassLoader in project grails-core by grails.
the class GrailsClassTests method testAbstractGrailsClassPackage.
@Test
public void testAbstractGrailsClassPackage() throws Exception {
GroovyClassLoader cl = new GroovyClassLoader();
Class<?> clazz = cl.parseClass("package test.casey; class TestService { }");
GrailsClass grailsClass = new AbstractGrailsClass(clazz, "Service") {
};
assertEquals("test.casey.TestService", clazz.getName());
assertEquals("Test", grailsClass.getName());
assertEquals("test.casey.TestService", grailsClass.getFullName());
assertNotNull(grailsClass.newInstance());
}
use of groovy.lang.GroovyClassLoader in project grails-core by grails.
the class CodecArtefactHandlerTests method testDomainClassWithNameEndingInCodecIsNotACodec.
@Test
public void testDomainClassWithNameEndingInCodecIsNotACodec() {
GroovyClassLoader gcl = new GroovyClassLoader();
Class<?> c = gcl.parseClass("@grails.persistence.Entity\nclass MySpecialCodec { Long id;Long version;}\n");
ArtefactHandler domainClassHandler = new DomainClassArtefactHandler();
assertTrue(domainClassHandler.isArtefact(c));
ArtefactHandler codecHandler = new CodecArtefactHandler();
assertFalse(codecHandler.isArtefact(c));
}
Aggregations