]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - org.argeo.slc.core/src/main/java/org/argeo/slc/unit/AbstractSpringTestCase.java
Improve Spring templates and defaults
[gpl/argeo-slc.git] / org.argeo.slc.core / src / main / java / org / argeo / slc / unit / AbstractSpringTestCase.java
index 06c6cf6b529b49dd642d11cb7baf391b7bda3878..5166242b4626c9c4873997565af672068eea715f 100644 (file)
@@ -1,10 +1,15 @@
 package org.argeo.slc.unit;\r
 \r
+import java.util.Map;\r
+\r
 import junit.framework.TestCase;\r
 \r
 import org.springframework.context.ApplicationContext;\r
 import org.springframework.context.support.ClassPathXmlApplicationContext;\r
 \r
+import org.argeo.slc.core.SlcException;\r
+import org.argeo.slc.core.process.SlcExecution;\r
+\r
 /** Helper for tests using a Spring application co,text. */\r
 public abstract class AbstractSpringTestCase extends TestCase {\r
        private ApplicationContext context;\r
@@ -21,10 +26,20 @@ public abstract class AbstractSpringTestCase extends TestCase {
                }\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
+               Map<String, T> map = getContext().getBeansOfType(clss);\r
+               if (map.size() == 1) {\r
+                       return map.values().iterator().next();\r
+               } else {\r
+                       throw new SlcException("Cannot retrieve a unique bean of type "\r
+                                       + clss);\r
+               }\r
        }\r
 \r
        /**\r