Commit 86ec838eda8df4f20f7e306e5a9860f3a218eb4f
1 parent
d0c0b80b
test: Testdatenbank mit XML-Testdaten füllen
Showing
10 changed files
with
52 additions
and
20 deletions
.gitignore
src/main/java/net/ziemers/swxercise/lg/user/service/UserService.java
... | ... | @@ -40,13 +40,17 @@ public class UserService { |
40 | 40 | } |
41 | 41 | |
42 | 42 | public Long createUser(final UserDto userDto) { |
43 | - final Profile profile = new Profile(userDto.getUsername(), userDto.getPassword()); | |
43 | + User user = dao.findByUsername(userDto.getUsername()); | |
44 | + if (user == null) { | |
45 | + final Profile profile = new Profile(userDto.getUsername(), userDto.getPassword()); | |
44 | 46 | |
45 | - // wir füllen das User-Objekt mit Method Chaining | |
46 | - final User user = new User(userDto.getFirstname(), userDto.getLastname()) | |
47 | - .withProfile(profile); | |
47 | + // wir füllen das User-Objekt mit Method Chaining | |
48 | + user = new User(userDto.getFirstname(), userDto.getLastname()) | |
49 | + .withProfile(profile); | |
48 | 50 | |
49 | - return dao.save(user); | |
51 | + return dao.save(user); | |
52 | + } | |
53 | + return null; | |
50 | 54 | } |
51 | 55 | |
52 | 56 | public void deleteUser(final Long id) { | ... | ... |
src/test/java/net/ziemers/swxercise/db/utils/JpaTestUtils.java
... | ... | @@ -40,7 +40,7 @@ public class JpaTestUtils { |
40 | 40 | |
41 | 41 | private static final String PERSISTENCE_UNIT_TEST = "swXerciseTestPU"; |
42 | 42 | |
43 | - private static final String NET_ZIEMERS_SWXERCISE_PKG = "net/ziemers/swxercise/"; | |
43 | + private static final String NET_ZIEMERS_SWXERCISE_PKG = "net/ziemers/swxercise/testdata/"; | |
44 | 44 | |
45 | 45 | private static EntityManagerFactory emf = null; |
46 | 46 | ... | ... |
src/test/java/net/ziemers/swxercise/lg/testdata/testdatabuilder/AbstractTestDataBuilder.java renamed to src/test/java/net/ziemers/swxercise/lg/testdatabuilder/AbstractTestDataBuilder.java
src/test/java/net/ziemers/swxercise/lg/testdata/testdatabuilder/user/ProfileTestDataBuilder.java renamed to src/test/java/net/ziemers/swxercise/lg/testdatabuilder/user/ProfileTestDataBuilder.java
1 | -package net.ziemers.swxercise.lg.testdata.testdatabuilder.user; | |
1 | +package net.ziemers.swxercise.lg.testdatabuilder.user; | |
2 | 2 | |
3 | 3 | import net.ziemers.swxercise.lg.model.user.Profile; |
4 | -import net.ziemers.swxercise.lg.testdata.testdatabuilder.AbstractTestDataBuilder; | |
4 | +import net.ziemers.swxercise.lg.testdatabuilder.AbstractTestDataBuilder; | |
5 | 5 | |
6 | 6 | import javax.persistence.EntityManager; |
7 | 7 | ... | ... |
src/test/java/net/ziemers/swxercise/lg/testdata/testdatabuilder/user/UserDtoTestDataBuilder.java renamed to src/test/java/net/ziemers/swxercise/lg/testdatabuilder/user/UserDtoTestDataBuilder.java
1 | -package net.ziemers.swxercise.lg.testdata.testdatabuilder.user; | |
1 | +package net.ziemers.swxercise.lg.testdatabuilder.user; | |
2 | 2 | |
3 | -import net.ziemers.swxercise.lg.testdata.testdatabuilder.AbstractTestDataBuilder; | |
3 | +import net.ziemers.swxercise.lg.testdatabuilder.AbstractTestDataBuilder; | |
4 | 4 | import net.ziemers.swxercise.lg.user.dto.UserDto; |
5 | 5 | |
6 | 6 | import javax.persistence.EntityManager; | ... | ... |
src/test/java/net/ziemers/swxercise/lg/testdata/testdatabuilder/user/UserTestDataBuilder.java renamed to src/test/java/net/ziemers/swxercise/lg/testdatabuilder/user/UserTestDataBuilder.java
1 | -package net.ziemers.swxercise.lg.testdata.testdatabuilder.user; | |
1 | +package net.ziemers.swxercise.lg.testdatabuilder.user; | |
2 | 2 | |
3 | 3 | import net.ziemers.swxercise.lg.model.user.Address; |
4 | 4 | import net.ziemers.swxercise.lg.model.user.Profile; |
5 | 5 | import net.ziemers.swxercise.lg.model.user.User; |
6 | -import net.ziemers.swxercise.lg.testdata.testdatabuilder.AbstractTestDataBuilder; | |
6 | +import net.ziemers.swxercise.lg.testdatabuilder.AbstractTestDataBuilder; | |
7 | 7 | |
8 | 8 | import javax.persistence.EntityManager; |
9 | 9 | ... | ... |
src/test/java/net/ziemers/swxercise/lg/user/service/UserServiceTest.java
... | ... | @@ -5,7 +5,7 @@ import javax.inject.Inject; |
5 | 5 | import net.ziemers.swxercise.db.dao.user.UserDao; |
6 | 6 | import net.ziemers.swxercise.db.utils.JpaTestUtils; |
7 | 7 | import net.ziemers.swxercise.lg.model.user.User; |
8 | -import net.ziemers.swxercise.lg.testdata.testdatabuilder.user.UserDtoTestDataBuilder; | |
8 | +import net.ziemers.swxercise.lg.testdatabuilder.user.UserDtoTestDataBuilder; | |
9 | 9 | import net.ziemers.swxercise.lg.user.dto.UserDto; |
10 | 10 | |
11 | 11 | import static org.junit.Assert.*; |
... | ... | @@ -28,11 +28,14 @@ import org.junit.runner.RunWith; |
28 | 28 | public class UserServiceTest extends JpaTestUtils { |
29 | 29 | |
30 | 30 | private static String USERNAME_TEST = "username_test"; |
31 | + private static String EXISTING_USERNAME_TEST = "username_profile"; | |
31 | 32 | |
32 | 33 | private static boolean dbInitialized; |
33 | 34 | |
34 | 35 | private UserDto userDto; |
35 | 36 | |
37 | + private Long userId; | |
38 | + | |
36 | 39 | @Inject |
37 | 40 | private UserDao userDao; |
38 | 41 | |
... | ... | @@ -43,7 +46,7 @@ public class UserServiceTest extends JpaTestUtils { |
43 | 46 | public void setUp() throws Exception { |
44 | 47 | if (!dbInitialized) { |
45 | 48 | cleanDb(); |
46 | - //initDbWith("UserService.xml"); | |
49 | + initDbWith("UserServiceTestData.xml"); | |
47 | 50 | dbInitialized = true; |
48 | 51 | } |
49 | 52 | } |
... | ... | @@ -52,7 +55,7 @@ public class UserServiceTest extends JpaTestUtils { |
52 | 55 | public void testCreateUserReturnsSuccess() { |
53 | 56 | |
54 | 57 | given() |
55 | - .userDto(); | |
58 | + .userDto(USERNAME_TEST); | |
56 | 59 | |
57 | 60 | when() |
58 | 61 | .createUser(); |
... | ... | @@ -61,13 +64,26 @@ public class UserServiceTest extends JpaTestUtils { |
61 | 64 | .assertCreateSuccess(); |
62 | 65 | } |
63 | 66 | |
67 | + @Test | |
68 | + public void testCreateUserReturnsFail() { | |
69 | + | |
70 | + given() | |
71 | + .userDto(EXISTING_USERNAME_TEST); | |
72 | + | |
73 | + when() | |
74 | + .createUser(); | |
75 | + | |
76 | + then() | |
77 | + .assertCreateFail(); | |
78 | + } | |
79 | + | |
64 | 80 | // given |
65 | 81 | |
66 | 82 | private UserServiceTest given() { |
67 | 83 | return this; |
68 | 84 | } |
69 | 85 | |
70 | - private UserServiceTest userDto() { | |
86 | + private UserServiceTest userDto(final String username) { | |
71 | 87 | userDto = new UserDtoTestDataBuilder() |
72 | 88 | .withUsername(USERNAME_TEST) |
73 | 89 | .build(); |
... | ... | @@ -82,7 +98,7 @@ public class UserServiceTest extends JpaTestUtils { |
82 | 98 | |
83 | 99 | private UserServiceTest createUser() { |
84 | 100 | txBegin(); |
85 | - underTest.createUser(userDto); | |
101 | + userId = underTest.createUser(userDto); | |
86 | 102 | txCommit(); |
87 | 103 | |
88 | 104 | return this; |
... | ... | @@ -95,8 +111,14 @@ public class UserServiceTest extends JpaTestUtils { |
95 | 111 | } |
96 | 112 | |
97 | 113 | private void assertCreateSuccess() { |
114 | + // wir suchen den soeben erstellten Benutzer; wenn er existiert, is alles gut | |
98 | 115 | final User user = userDao.findByUsername(USERNAME_TEST); |
99 | 116 | assertNotNull(user); |
100 | 117 | } |
101 | 118 | |
119 | + private void assertCreateFail() { | |
120 | + // es darf kein neuer Benutzer mit identischem "username" erstellt worden sein | |
121 | + assertNull(userId); | |
122 | + } | |
123 | + | |
102 | 124 | } | ... | ... |
src/test/java/net/ziemers/swxercise/ui/UserViewControllerTest.java
1 | 1 | package net.ziemers.swxercise.ui; |
2 | 2 | |
3 | 3 | import net.ziemers.swxercise.lg.model.user.User; |
4 | -import net.ziemers.swxercise.lg.testdata.testdatabuilder.user.UserDtoTestDataBuilder; | |
5 | -import net.ziemers.swxercise.lg.testdata.testdatabuilder.user.UserTestDataBuilder; | |
4 | +import net.ziemers.swxercise.lg.testdatabuilder.user.UserDtoTestDataBuilder; | |
5 | +import net.ziemers.swxercise.lg.testdatabuilder.user.UserTestDataBuilder; | |
6 | 6 | import net.ziemers.swxercise.lg.user.dto.UserDto; |
7 | 7 | import net.ziemers.swxercise.lg.user.service.UserService; |
8 | 8 | import org.junit.Test; | ... | ... |
src/test/resources/net/ziemers/swxercise/testdata/UserServiceTestData.xml
0 → 100644
1 | +<?xml version="1.0" encoding="UTF-8"?> | |
2 | +<dataset> | |
3 | + <profile id="1" username="username_profile" passwordHash="passwordHash_profile" hashAlgorithm="hashAlgorithm_profile" salt="salt_profile"/> | |
4 | + <user id="2" firstname="firstname_user" lastname="lastname_user" profile_id="1"/> | |
5 | +</dataset> | ... | ... |