package org.grails.plugins; import junit.framework.TestCase; /** * NOTE: This test covers the old plug-in system. The system has been heavily re-worked. Please see * PluginSystemTests in src/groovy * * @author graemerocher * */ public class PluginTests extends TestCase { public void testTempPluginTests() { // does nothing. All of the below is commented out because it relates to // the original plugin proposal which has now been removed. However there // may still be a place for a test with this name } /* GenericApplicationContext appCtx; protected void setUp() throws Exception { if (appCtx != null) { return; } appCtx = new GenericApplicationContext(); Resource[] resources = new Resource[2]; resources[0] = new ClassPathResource("org/codehaus/groovy/grails/plugins/grails-app/services/TestService.groovy"); resources[1] = new ClassPathResource("org/codehaus/groovy/grails/plugins/grails-app/conf/PooledApplicationDataSource.groovy"); GrailsApplication application = new DefaultGrailsApplication(resources); GrailsPluginLoader.loadPlugins(appCtx, application, "classpath*:org/codehaus/groovy/grails/plugins/*.xml"); appCtx.refresh(); } public void testAwareBeanPostProcessorsAreRegistered() { Map grailsApplicationAwares = appCtx.getBeansOfType(GrailsApplicationAware.class); assertEquals(2, grailsApplicationAwares.size()); Map classLoaderAwares = appCtx.getBeansOfType(ClassLoaderAware.class); assertEquals(1, classLoaderAwares.size()); } public void testTestBeanGetClass() { TestBean bean = (TestBean)appCtx.getBean("myTestBean1", TestBean.class); assertSame(GenericApplicationContext.class, bean.getMyClass()); } public void testGrailsExceptionResolverRequired() { GrailsExceptionResolver exceptionResolver = (GrailsExceptionResolver)appCtx.getBean("exceptionHandler", GrailsExceptionResolver.class); } public void testCommonsMultipartResolverRequired() { CommonsMultipartResolver multipartResolver = (CommonsMultipartResolver)appCtx.getBean("multipartResolver", CommonsMultipartResolver.class); } public void testReloadableResourceBundleMessageSourceRequired() { ReloadableResourceBundleMessageSource messageSource = (ReloadableResourceBundleMessageSource)appCtx.getBean("messageSource", ReloadableResourceBundleMessageSource.class); } public void testLocaleChangeInterceptorRequired() { LocaleChangeInterceptor interceptor = (LocaleChangeInterceptor) appCtx.getBean("localeChangeInterceptor", LocaleChangeInterceptor.class); } public void testCookieLocaleResolverRequired() { CookieLocaleResolver localeResolver = (CookieLocaleResolver) appCtx.getBean("localeResolver", CookieLocaleResolver.class); } public void testTestServiceRequired() { Object testService = appCtx.getBean("TestServiceService"); AopUtils.isAopProxy(testService); } // public void testHibernateDialectDetectorRequired() { // HibernateDialectDetectorFactoryBean dialectDetector = (HibernateDialectDetectorFactoryBean) appCtx.getBean("&dialectDetector", HibernateDialectDetectorFactoryBean.class); // } public static class MyGrailsApplicationAware implements GrailsApplicationAware { public void setGrailsApplication(GrailsApplication grailsApplication) { } } public static class MyClassLoaderAware implements ClassLoaderAware { public void setCompilerConfiguration(ClassLoader classLoader) { } } public static class MyAwarePlugin implements GrailsPlugin { public void doWithApplicationContext(GenericApplicationContext applicationContext, GrailsApplication application) { RootBeanDefinition bd = new RootBeanDefinition(MyGrailsApplicationAware.class); applicationContext.registerBeanDefinition(MyGrailsApplicationAware.class.getName(), bd); RootBeanDefinition bd2 = new RootBeanDefinition(MyClassLoaderAware.class); applicationContext.registerBeanDefinition(MyClassLoaderAware.class.getName(), bd2); } } public static class TestBean { private Class myClass; public Class getMyClass() { return myClass; } public void setMyClass(Class myClass) { this.myClass = myClass; } } public static class MyClassEditorPlugin implements GrailsPlugin { public void doWithApplicationContext(GenericApplicationContext applicationContext, GrailsApplication application) { RootBeanDefinition bd = new RootBeanDefinition(TestBean.class); MutablePropertyValues mpv = new MutablePropertyValues(); mpv.addPropertyValue("myClass", "org.springframework.context.support.GenericApplicationContext"); bd.setPropertyValues(mpv); applicationContext.registerBeanDefinition("myTestBean1", bd); } }*/ }