Skip to content

Commit a167169

Browse files
committed
CollectionService.createCollection(): change arguments to getting rid of usage of User entity.
Addressed to #120 No functional changes.
1 parent 9e09e4f commit a167169

File tree

4 files changed

+33
-28
lines changed

4 files changed

+33
-28
lines changed

src/main/java/ru/mystamps/web/service/CollectionService.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,11 @@
1717
*/
1818
package ru.mystamps.web.service;
1919

20-
import ru.mystamps.web.entity.User;
2120
import ru.mystamps.web.service.dto.LinkEntityDto;
2221
import ru.mystamps.web.service.dto.UrlEntityDto;
2322

2423
public interface CollectionService {
25-
void createCollection(User user);
24+
void createCollection(Integer ownerId, String ownerLogin);
2625
UrlEntityDto addToCollection(Integer userId, Integer seriesId);
2726
UrlEntityDto removeFromCollection(Integer userId, Integer seriesId);
2827
boolean isSeriesInCollection(Integer userId, Integer seriesId);

src/main/java/ru/mystamps/web/service/CollectionServiceImpl.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929

3030
import ru.mystamps.web.dao.JdbcCollectionDao;
3131
import ru.mystamps.web.dao.dto.AddCollectionDbDto;
32-
import ru.mystamps.web.entity.User;
3332
import ru.mystamps.web.service.dto.LinkEntityDto;
3433
import ru.mystamps.web.service.dto.UrlEntityDto;
3534
import ru.mystamps.web.util.SlugUtils;
@@ -42,14 +41,15 @@ public class CollectionServiceImpl implements CollectionService {
4241

4342
@Override
4443
@Transactional
45-
public void createCollection(User user) {
46-
Validate.isTrue(user != null, "User must be non null");
44+
public void createCollection(Integer ownerId, String ownerLogin) {
45+
Validate.isTrue(ownerId != null, "Owner id must be non null");
46+
Validate.isTrue(ownerLogin != null, "Owner login must be non null");
4747

4848
AddCollectionDbDto collection = new AddCollectionDbDto();
49-
collection.setOwnerId(user.getId());
49+
collection.setOwnerId(ownerId);
5050

51-
String slug = SlugUtils.slugify(user.getLogin());
52-
Validate.isTrue(slug != null, "Slug for string '%s' is null", user.getLogin());
51+
String slug = SlugUtils.slugify(ownerLogin);
52+
Validate.isTrue(slug != null, "Slug for string '%s' is null", ownerLogin);
5353
collection.setSlug(slug);
5454

5555
Integer id = collectionDao.add(collection);

src/main/java/ru/mystamps/web/service/UserServiceImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ public void registerUser(ActivateAccountDto dto) {
9696

9797
LOG.info("User has been created ({})", user);
9898

99-
collectionService.createCollection(user);
99+
collectionService.createCollection(user.getId(), user.getLogin());
100100
}
101101

102102
@Override

src/test/groovy/ru/mystamps/web/service/UserServiceImplTest.groovy

Lines changed: 25 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ class UserServiceImplTest extends Specification {
7272
when:
7373
service.registerUser(activationForm)
7474
then:
75-
1 * userDao.save(_ as User)
75+
1 * userDao.save(_ as User) >> TestObjects.createUser()
7676
}
7777

7878
def "registerUser() should delete registration request"() {
@@ -87,6 +87,8 @@ class UserServiceImplTest extends Specification {
8787
assert actualActivation == expectedActivation
8888
return true
8989
})
90+
and:
91+
userDao.save(_ as User) >> TestObjects.createUser()
9092
}
9193

9294
def "registerUser() should throw exception when activation key is null"() {
@@ -118,7 +120,7 @@ class UserServiceImplTest extends Specification {
118120
1 * userDao.save({ User user ->
119121
assert user?.name == expectedUserName
120122
return true
121-
})
123+
}) >> TestObjects.createUser()
122124
}
123125

124126
def "registerUser() should pass login instead of name when name is null"() {
@@ -131,7 +133,7 @@ class UserServiceImplTest extends Specification {
131133
1 * userDao.save({ User user ->
132134
assert user?.name == expectedUserLogin
133135
return true
134-
})
136+
}) >> TestObjects.createUser()
135137
}
136138

137139
def "registerUser() should pass login instead of name when name is empty"() {
@@ -145,7 +147,7 @@ class UserServiceImplTest extends Specification {
145147
1 * userDao.save({ User user ->
146148
assert user?.name == expectedUserLogin
147149
return true
148-
})
150+
}) >> TestObjects.createUser()
149151
}
150152

151153
def "registerUser() should fill role field"() {
@@ -155,7 +157,7 @@ class UserServiceImplTest extends Specification {
155157
1 * userDao.save({ User user ->
156158
assert user?.role == Role.USER
157159
return true
158-
})
160+
}) >> TestObjects.createUser()
159161
}
160162

161163
def "registerUser() should use email from registration request"() {
@@ -169,7 +171,7 @@ class UserServiceImplTest extends Specification {
169171
1 * userDao.save({ User user ->
170172
assert user?.email == activation.email
171173
return true
172-
})
174+
}) >> TestObjects.createUser()
173175
}
174176

175177
def "registerUser() should use registration date from registration request"() {
@@ -183,7 +185,7 @@ class UserServiceImplTest extends Specification {
183185
1 * userDao.save({ User user ->
184186
assert user?.registeredAt == activation.createdAt
185187
return true
186-
})
188+
}) >> TestObjects.createUser()
187189
}
188190

189191
def "registerUser() should throw exception when password is null"() {
@@ -204,7 +206,7 @@ class UserServiceImplTest extends Specification {
204206
1 * userDao.save({ User user ->
205207
assert user?.hash == expectedHash
206208
return true
207-
})
209+
}) >> TestObjects.createUser()
208210
and:
209211
1 * encoder.encode({ String password ->
210212
assert password == TestObjects.TEST_PASSWORD
@@ -239,7 +241,7 @@ class UserServiceImplTest extends Specification {
239241
1 * userDao.save({ User user ->
240242
assert user?.login == expectedUserLogin
241243
return true
242-
})
244+
}) >> TestObjects.createUser()
243245
}
244246

245247
def "registerUser() should assign activated at to current date"() {
@@ -249,23 +251,27 @@ class UserServiceImplTest extends Specification {
249251
1 * userDao.save({ User user ->
250252
assert DateUtils.roughlyEqual(user?.activatedAt, new Date())
251253
return true
252-
})
254+
}) >> TestObjects.createUser()
253255
}
254256

255257
def "registerUser() should create collection for user"() {
256258
given:
257-
userDao.save(_ as User) >> TestObjects.createUser()
259+
Integer expectedId = 909;
260+
String expectedLogin = "foobar"
261+
and:
262+
User user = TestObjects.createUser();
263+
user.setId(expectedId)
264+
user.setLogin(expectedLogin)
265+
and:
266+
userDao.save(_ as User) >> user
258267
when:
259268
service.registerUser(activationForm)
260269
then:
261-
1 * collectionService.createCollection({ User user ->
262-
assert user?.login == activationForm.login
263-
assert user?.role == Role.USER
264-
assert user?.name == activationForm.name
265-
assert user?.email != null
266-
assert user?.registeredAt != null
267-
assert DateUtils.roughlyEqual(user?.activatedAt, new Date())
268-
assert user?.hash != null
270+
1 * collectionService.createCollection({ Integer ownerId ->
271+
assert ownerId == expectedId
272+
return true
273+
}, { String ownerLogin ->
274+
assert ownerLogin == expectedLogin
269275
return true
270276
})
271277
}

0 commit comments

Comments
 (0)