X-Git-Url: https://juplo.de/gitweb/?p=percentcodec;a=blobdiff_plain;f=testingtools%2Fsrc%2Fmain%2Fjava%2Fde%2Fjuplo%2Ftestingtools%2FWebContextTestExecutionListener.java;fp=testingtools%2Fsrc%2Fmain%2Fjava%2Fde%2Fjuplo%2Ftestingtools%2FWebContextTestExecutionListener.java;h=9309584161376b79c3ad0a9e3fbde484fc30864f;hp=0000000000000000000000000000000000000000;hb=a6e0e65cce68acb20abc6ca935471611a740c342;hpb=1d395c6002486d485bde0d5dc713886d70bd3f8a diff --git a/testingtools/src/main/java/de/juplo/testingtools/WebContextTestExecutionListener.java b/testingtools/src/main/java/de/juplo/testingtools/WebContextTestExecutionListener.java new file mode 100644 index 00000000..93095841 --- /dev/null +++ b/testingtools/src/main/java/de/juplo/testingtools/WebContextTestExecutionListener.java @@ -0,0 +1,41 @@ +package de.juplo.testingtools; + +import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; +import org.springframework.beans.factory.config.Scope; +import org.springframework.context.support.GenericApplicationContext; +import org.springframework.context.support.SimpleThreadScope; +import org.springframework.test.context.TestContext; +import org.springframework.test.context.support.AbstractTestExecutionListener; + +/** + * Diese Klasse ermöglicht es, Beans mit dem Scope REQUEST in JUnit-Testfällen + * zu verwenden. + *
+ * Source: http://stackoverflow.com/questions/2411343/request-scoped-beans-in-spring-testing + *
+ * Anwendung:
+ *
+ * @RunWith(SpringJUnit4ClassRunner.class)
+ * @ContextConfiguration(locations = "classpath:spring/TestScopedBeans-context.xml")
+ * @TestExecutionListeners({
+ * WebContextTestExecutionListener.class,
+ * DependencyInjectionTestExecutionListener.class,
+ * DirtiesContextTestExecutionListener.class })
+ * public class TestScopedBeans {
+ * ...
+ *
+ */
+public class WebContextTestExecutionListener extends AbstractTestExecutionListener {
+ @Override
+ public void prepareTestInstance(TestContext testContext) throws Exception {
+
+ if (testContext.getApplicationContext() instanceof GenericApplicationContext) {
+ GenericApplicationContext context = (GenericApplicationContext) testContext.getApplicationContext();
+ ConfigurableListableBeanFactory beanFactory = context.getBeanFactory();
+ Scope requestScope = new SimpleThreadScope();
+ beanFactory.registerScope("request", requestScope);
+ Scope sessionScope = new SimpleThreadScope();
+ beanFactory.registerScope("session", sessionScope);
+ }
+ }
+}