Commit aa76328ae23ce1d8f6295d463ca68565299d0351
1 parent
01616222
test: Alternativer EntityManagerProducer im CDI-Kontext
Showing
4 changed files
with
28 additions
and
3 deletions
src/main/java/net/ziemers/swxercise/db/dao/EntityManagerProducer.java
0 → 100644
1 | +package net.ziemers.swxercise.db.dao; | ||
2 | + | ||
3 | +import javax.enterprise.inject.Produces; | ||
4 | +import javax.persistence.EntityManager; | ||
5 | +import javax.persistence.PersistenceContext; | ||
6 | + | ||
7 | +/** | ||
8 | + * Der Producer stellt einen Entity Manager zur Verfügung, sofern die Anwendung im JEE-Container | ||
9 | + * des WildFly Servers läuft. Läuft sie im Testkontext in ihrem Weld-Server, funktioniert dies | ||
10 | + * naturgegeben nicht, und es wird der alternative Producer verwendet, der sich in der Klasse | ||
11 | + * "JpaTestUtils" im Paket "test.java.net.ziemers.swxercise.db.utils befindet". | ||
12 | + */ | ||
13 | +public class EntityManagerProducer { | ||
14 | + | ||
15 | + @Produces | ||
16 | + @PersistenceContext | ||
17 | + private EntityManager entityManager; | ||
18 | + | ||
19 | +} |
src/main/java/net/ziemers/swxercise/db/dao/GenericDao.java
@@ -3,8 +3,8 @@ package net.ziemers.swxercise.db.dao; | @@ -3,8 +3,8 @@ package net.ziemers.swxercise.db.dao; | ||
3 | import java.util.Collection; | 3 | import java.util.Collection; |
4 | 4 | ||
5 | import javax.ejb.Stateless; | 5 | import javax.ejb.Stateless; |
6 | +import javax.inject.Inject; | ||
6 | import javax.persistence.EntityManager; | 7 | import javax.persistence.EntityManager; |
7 | -import javax.persistence.PersistenceContext; | ||
8 | import javax.persistence.TypedQuery; | 8 | import javax.persistence.TypedQuery; |
9 | import javax.persistence.criteria.CriteriaBuilder; | 9 | import javax.persistence.criteria.CriteriaBuilder; |
10 | import javax.persistence.criteria.CriteriaQuery; | 10 | import javax.persistence.criteria.CriteriaQuery; |
@@ -19,7 +19,11 @@ import net.ziemers.swxercise.db.BaseEntity; | @@ -19,7 +19,11 @@ import net.ziemers.swxercise.db.BaseEntity; | ||
19 | @Stateless | 19 | @Stateless |
20 | public class GenericDao { | 20 | public class GenericDao { |
21 | 21 | ||
22 | - @PersistenceContext | 22 | + /* |
23 | + * Der Entity Manager wird per CDI injiziert, damit er auch im Testkontext mit dem CDI-Runner funktioniert. | ||
24 | + * Im JEE-Container "zieht" dann die Produktion des Entity Managers in der Klasse "EntityMangerProducer". | ||
25 | + */ | ||
26 | + @Inject | ||
23 | protected EntityManager entityManager; | 27 | protected EntityManager entityManager; |
24 | 28 | ||
25 | /** | 29 | /** |
src/test/java/net/ziemers/swxercise/db/utils/JpaTestUtils.java
@@ -27,6 +27,7 @@ import org.dbunit.ext.mysql.MySqlDataTypeFactory; | @@ -27,6 +27,7 @@ import org.dbunit.ext.mysql.MySqlDataTypeFactory; | ||
27 | import org.dbunit.ext.mysql.MySqlMetadataHandler; | 27 | import org.dbunit.ext.mysql.MySqlMetadataHandler; |
28 | import org.dbunit.operation.DatabaseOperation; | 28 | import org.dbunit.operation.DatabaseOperation; |
29 | import org.hibernate.internal.SessionImpl; | 29 | import org.hibernate.internal.SessionImpl; |
30 | +import org.jglue.cdiunit.ProducesAlternative; | ||
30 | import org.slf4j.Logger; | 31 | import org.slf4j.Logger; |
31 | import org.slf4j.LoggerFactory; | 32 | import org.slf4j.LoggerFactory; |
32 | 33 | ||
@@ -54,6 +55,7 @@ public class JpaTestUtils { | @@ -54,6 +55,7 @@ public class JpaTestUtils { | ||
54 | * @return EntityManager der erzeugt wurde | 55 | * @return EntityManager der erzeugt wurde |
55 | */ | 56 | */ |
56 | @Produces | 57 | @Produces |
58 | + @ProducesAlternative | ||
57 | public EntityManager getEm() { | 59 | public EntityManager getEm() { |
58 | if (emf == null) { | 60 | if (emf == null) { |
59 | synchronized (EntityManagerFactory.class) { | 61 | synchronized (EntityManagerFactory.class) { |
src/test/java/net/ziemers/swxercise/lg/user/service/UserServiceTest.java
@@ -46,7 +46,7 @@ public class UserServiceTest extends JpaTestUtils { | @@ -46,7 +46,7 @@ public class UserServiceTest extends JpaTestUtils { | ||
46 | .withUsername("tziemer") | 46 | .withUsername("tziemer") |
47 | .withPassword("secret"); | 47 | .withPassword("secret"); |
48 | 48 | ||
49 | - //underTest.createUser(dto); | 49 | + underTest.createUser(dto); |
50 | 50 | ||
51 | txCommit(); | 51 | txCommit(); |
52 | } | 52 | } |