Commit 2e73629ca6ad00df846ca635b496c04b7cb3f3d1

Authored by Thomas Ziemer
1 parent 7de29276

bugfix: Service-Tests repariert (Konflikt mit dem Weld SE von Jetty)

src/test/java/net/ziemers/swxercise/lg/user/service/RoleServiceTest.java
@@ -3,11 +3,13 @@ package net.ziemers.swxercise.lg.user.service; @@ -3,11 +3,13 @@ package net.ziemers.swxercise.lg.user.service;
3 import net.ziemers.swxercise.db.dao.user.UserDao; 3 import net.ziemers.swxercise.db.dao.user.UserDao;
4 import net.ziemers.swxercise.db.utils.JpaTestUtils; 4 import net.ziemers.swxercise.db.utils.JpaTestUtils;
5 import org.jglue.cdiunit.CdiRunner; 5 import org.jglue.cdiunit.CdiRunner;
  6 +import org.junit.After;
6 import org.junit.Before; 7 import org.junit.Before;
7 import org.junit.Test; 8 import org.junit.Test;
8 import org.junit.runner.RunWith; 9 import org.junit.runner.RunWith;
9 10
10 import javax.inject.Inject; 11 import javax.inject.Inject;
  12 +import javax.naming.InitialContext;
11 13
12 /** 14 /**
13 * Testing your Java CDI application with CDI-Unit couldn't be easier. 15 * Testing your Java CDI application with CDI-Unit couldn't be easier.
@@ -33,6 +35,8 @@ public class RoleServiceTest extends JpaTestUtils { @@ -33,6 +35,8 @@ public class RoleServiceTest extends JpaTestUtils {
33 35
34 @Before 36 @Before
35 public void setUp() throws Exception { 37 public void setUp() throws Exception {
  38 + // wird vor jedem Test ausgeführt
  39 +
36 if (!dbInitialized) { 40 if (!dbInitialized) {
37 cleanDb(); 41 cleanDb();
38 initDbWith("RoleServiceTestData.xml"); 42 initDbWith("RoleServiceTestData.xml");
@@ -40,6 +44,21 @@ public class RoleServiceTest extends JpaTestUtils { @@ -40,6 +44,21 @@ public class RoleServiceTest extends JpaTestUtils {
40 } 44 }
41 } 45 }
42 46
  47 + @After
  48 + public void tearDown() throws Exception {
  49 + // wird nach jedem Test ausgeführt
  50 +
  51 + /*
  52 + * java.lang.IllegalStateException: WELD-ENV-002000: Weld SE container STATIC_INSTANCE is already running!
  53 + *
  54 + * Jetty initialisiert einen eigenen Weld SE Container, der mit demjenigen
  55 + * vom CDI-Runner kollidiert. Wir müssen ihn deshalb hier entfernen.
  56 + * Quelle: https://groups.google.com/forum/#!topic/cdi-unit/2e-XnyduXcs
  57 + */
  58 + InitialContext initialContext = new InitialContext();
  59 + initialContext.unbind("java:comp/BeanManager");
  60 + }
  61 +
43 @Test 62 @Test
44 public void testSomething() { 63 public void testSomething() {
45 64
src/test/java/net/ziemers/swxercise/lg/user/service/UserServiceTest.java
@@ -5,6 +5,7 @@ import java.util.Collection; @@ -5,6 +5,7 @@ import java.util.Collection;
5 import java.util.HashSet; 5 import java.util.HashSet;
6 import java.util.Set; 6 import java.util.Set;
7 import javax.inject.Inject; 7 import javax.inject.Inject;
  8 +import javax.naming.InitialContext;
8 9
9 import net.ziemers.swxercise.db.dao.user.UserDao; 10 import net.ziemers.swxercise.db.dao.user.UserDao;
10 import net.ziemers.swxercise.db.utils.JpaTestUtils; 11 import net.ziemers.swxercise.db.utils.JpaTestUtils;
@@ -16,6 +17,7 @@ import static org.junit.Assert.*; @@ -16,6 +17,7 @@ import static org.junit.Assert.*;
16 17
17 import org.jglue.cdiunit.CdiRunner; 18 import org.jglue.cdiunit.CdiRunner;
18 import org.jglue.cdiunit.InRequestScope; 19 import org.jglue.cdiunit.InRequestScope;
  20 +import org.junit.After;
19 import org.junit.Before; 21 import org.junit.Before;
20 import org.junit.Test; 22 import org.junit.Test;
21 import org.junit.runner.RunWith; 23 import org.junit.runner.RunWith;
@@ -60,6 +62,8 @@ public class UserServiceTest extends JpaTestUtils { @@ -60,6 +62,8 @@ public class UserServiceTest extends JpaTestUtils {
60 62
61 @Before 63 @Before
62 public void setUp() throws Exception { 64 public void setUp() throws Exception {
  65 + // wird vor jedem Test ausgeführt
  66 +
63 if (!dbInitialized) { 67 if (!dbInitialized) {
64 cleanDb(); 68 cleanDb();
65 initDbWith("UserServiceTestData.xml"); 69 initDbWith("UserServiceTestData.xml");
@@ -67,6 +71,21 @@ public class UserServiceTest extends JpaTestUtils { @@ -67,6 +71,21 @@ public class UserServiceTest extends JpaTestUtils {
67 } 71 }
68 } 72 }
69 73
  74 + @After
  75 + public void tearDown() throws Exception {
  76 + // wird nach jedem Test ausgeführt
  77 +
  78 + /*
  79 + * java.lang.IllegalStateException: WELD-ENV-002000: Weld SE container STATIC_INSTANCE is already running!
  80 + *
  81 + * Jetty initialisiert einen eigenen Weld SE Container, der mit demjenigen
  82 + * vom CDI-Runner kollidiert. Wir müssen ihn deshalb hier entfernen.
  83 + * Quelle: https://groups.google.com/forum/#!topic/cdi-unit/2e-XnyduXcs
  84 + */
  85 + InitialContext initialContext = new InitialContext();
  86 + initialContext.unbind("java:comp/BeanManager");
  87 + }
  88 +
70 /* 89 /*
71 * In order to inject @SessionScoped beans, one has to annotate the function or class with @InRequestScope 90 * In order to inject @SessionScoped beans, one has to annotate the function or class with @InRequestScope
72 * as only this annotation guarantees to have the session scope active always. 91 * as only this annotation guarantees to have the session scope active always.