]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - org.argeo.slc.core/src/main/java/org/argeo/slc/unit/AbstractSpringTestCase.java
Improve web services
[gpl/argeo-slc.git] / org.argeo.slc.core / src / main / java / org / argeo / slc / unit / AbstractSpringTestCase.java
index 06c6cf6b529b49dd642d11cb7baf391b7bda3878..a37c4a7ceb4147cdff4e031d2315cd02ea3d9b16 100644 (file)
@@ -2,29 +2,44 @@ package org.argeo.slc.unit;
 \r
 import junit.framework.TestCase;\r
 \r
-import org.springframework.context.ApplicationContext;\r
+import org.apache.commons.logging.Log;\r
+import org.apache.commons.logging.LogFactory;\r
+import org.argeo.slc.core.SlcException;\r
+import org.argeo.slc.spring.SpringUtils;\r
+import org.springframework.context.ConfigurableApplicationContext;\r
 import org.springframework.context.support.ClassPathXmlApplicationContext;\r
 \r
 /** Helper for tests using a Spring application co,text. */\r
 public abstract class AbstractSpringTestCase extends TestCase {\r
-       private ApplicationContext context;\r
+       protected final Log log = LogFactory.getLog(getClass());\r
+       private ConfigurableApplicationContext context;\r
 \r
        /**\r
         * Gets (and create if necessary) the application context to use. Default\r
         * implementation uses a class path xml application context and calls\r
         * {@link #getApplicationContextLocation()}.\r
         */\r
-       protected ApplicationContext getContext() {\r
+       protected ConfigurableApplicationContext getContext() {\r
                if (context == null) {\r
                        context = new ClassPathXmlApplicationContext(\r
                                        getApplicationContextLocation());\r
                }\r
                return context;\r
        }\r
-       \r
+\r
        /** Returns a bean from the underlying context */\r
-       protected <T> T getBean(String beanId){\r
-               return (T)getContext().getBean(beanId);\r
+       protected <T> T getBean(String beanId) {\r
+               return (T) getContext().getBean(beanId);\r
+       }\r
+\r
+       protected <T> T getBean(Class<? extends T> clss) {\r
+               T bean = SpringUtils.loadSingleFromContext(getContext(), clss);\r
+               if (bean == null) {\r
+                       throw new SlcException("Cannot retrieve a unique bean of type "\r
+                                       + clss);\r
+               } else {\r
+                       return bean;\r
+               }\r
        }\r
 \r
        /**\r