RoleServiceTest.java
2.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
package net.ziemers.swxercise.lg.user.service;
import net.ziemers.swxercise.db.dao.user.UserDao;
import net.ziemers.swxercise.db.utils.JpaTestUtils;
import org.jglue.cdiunit.CdiRunner;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import javax.inject.Inject;
import javax.naming.InitialContext;
/**
* Testing your Java CDI application with CDI-Unit couldn't be easier.
* Just specify @RunWith(CdiRunner.class) on your JUnit test class
* to enable injection directly into the test class.
*
* To test classes in isolation we shouldn't be using their dependencies.
* Instead we should be using a mock. There are many mocking libraries out
* there, however CDI-Unit has extra support for Mockito @Mock annotations.
*
* Quelle: http://jglue.org/cdi-unit-user-guide/
*
* Copyright (c) 2017 Dipl.-Inform. Thomas Ziemer
*
* This file is part of swXercise.
*
* swXercise is free software: you can redistribute it and/or modify it under the terms of the
* GNU General Public License as published by the Free Software Foundation, either version 3
* of the License, or (at your option) any later version.
*
* swXercise is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
* even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with swXercise.
* If not, see <http://www.gnu.org/licenses/>.
*/
@RunWith(CdiRunner.class)
public class RoleServiceTest extends JpaTestUtils {
private static boolean dbInitialized;
@Inject
private UserDao userDao;
@Inject
private UserService underTest;
@Before
public void setUp() throws Exception {
// wird vor jedem Test ausgeführt
if (!dbInitialized) {
cleanDb();
initDbWith("RoleServiceTestData.xml");
dbInitialized = true;
}
}
@After
public void tearDown() throws Exception {
// wird nach jedem Test ausgeführt
/*
* java.lang.IllegalStateException: WELD-ENV-002000: Weld SE container STATIC_INSTANCE is already running!
*
* Jetty initialisiert einen eigenen Weld SE Container, der mit demjenigen
* vom CDI-Runner kollidiert. Wir müssen ihn deshalb hier entfernen.
* Quelle: https://groups.google.com/forum/#!topic/cdi-unit/2e-XnyduXcs
*/
InitialContext initialContext = new InitialContext();
initialContext.unbind("java:comp/BeanManager");
}
@Test
public void testSomething() {
given();
when();
then();
}
// given
private RoleServiceTest given() {
return this;
}
// when
private RoleServiceTest when() {
return this;
}
// then
private RoleServiceTest then() {
return this;
}
}