Skip to content

Commit 54df036

Browse files
committed
ImageService.save(): modify return value to return full info about image.
Refactoring required for #301 No functional changes.
1 parent 71213dd commit 54df036

File tree

6 files changed

+22
-15
lines changed

6 files changed

+22
-15
lines changed

src/main/java/ru/mystamps/web/dao/dto/ImageInfoDto.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,14 @@
1717
*/
1818
package ru.mystamps.web.dao.dto;
1919

20+
import lombok.EqualsAndHashCode;
2021
import lombok.Getter;
2122
import lombok.RequiredArgsConstructor;
2223
import lombok.ToString;
2324

2425
@Getter
2526
@RequiredArgsConstructor
27+
@EqualsAndHashCode
2628
@ToString
2729
public class ImageInfoDto {
2830
private final Integer id;

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,10 @@
2222
import org.springframework.web.multipart.MultipartFile;
2323

2424
import ru.mystamps.web.dao.dto.ImageDto;
25+
import ru.mystamps.web.dao.dto.ImageInfoDto;
2526

2627
public interface ImageService {
27-
Integer save(MultipartFile file);
28+
ImageInfoDto save(MultipartFile file);
2829
ImageDto get(Integer imageId);
2930
ImageDto getOrCreatePreview(Integer imageId);
3031
void addToSeries(Integer seriesId, Integer imageId);

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public class ImageServiceImpl implements ImageService {
5555
@Override
5656
@Transactional
5757
@PreAuthorize("isAuthenticated()")
58-
public Integer save(MultipartFile file) {
58+
public ImageInfoDto save(MultipartFile file) {
5959
Validate.isTrue(file != null, "File must be non null");
6060
Validate.isTrue(file.getSize() > 0, "Image size must be greater than zero");
6161

@@ -81,7 +81,7 @@ public Integer save(MultipartFile file) {
8181

8282
imagePersistenceStrategy.save(file, imageInfo);
8383

84-
return imageId;
84+
return imageInfo;
8585
}
8686

8787
@Override

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

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import ru.mystamps.web.dao.SeriesDao;
3737
import ru.mystamps.web.dao.dto.AddSeriesDbDto;
3838
import ru.mystamps.web.dao.dto.Currency;
39+
import ru.mystamps.web.dao.dto.ImageInfoDto;
3940
import ru.mystamps.web.dao.dto.PurchaseAndSaleDto;
4041
import ru.mystamps.web.dao.dto.SeriesFullInfoDto;
4142
import ru.mystamps.web.dao.dto.SeriesInfoDto;
@@ -150,8 +151,8 @@ public Integer add(AddSeriesDto dto, Integer userId, boolean userCanAddComments)
150151
gibbonsCatalogService.addToSeries(id, gibbonsNumbers);
151152
}
152153

153-
Integer imageId = imageService.save(dto.getImage());
154-
imageService.addToSeries(id, imageId);
154+
ImageInfoDto imageInfo = imageService.save(dto.getImage());
155+
imageService.addToSeries(id, imageInfo.getId());
155156

156157
LOG.info("Series #{} has been created ({})", id, series);
157158

@@ -168,7 +169,8 @@ public void addImageToSeries(AddImageDto dto, Integer seriesId, Integer userId)
168169

169170
seriesDao.markAsModified(seriesId, new Date(), userId);
170171

171-
Integer imageId = imageService.save(dto.getImage());
172+
ImageInfoDto imageInfo = imageService.save(dto.getImage());
173+
Integer imageId = imageInfo.getId();
172174
imageService.addToSeries(seriesId, imageId);
173175

174176
LOG.info(

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

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -138,13 +138,15 @@ class ImageServiceImplTest extends Specification {
138138

139139
def "save() should return saved image"() {
140140
given:
141-
Integer expectedImageId = 20
141+
Integer expectedImageId = 17
142+
and:
143+
ImageInfoDto expectedImageInfo = new ImageInfoDto(expectedImageId, "PNG")
142144
when:
143-
Integer actualImageId = service.save(multipartFile)
145+
ImageInfoDto actualImageInfo = service.save(multipartFile)
144146
then:
145147
imageDao.add(_ as String) >> expectedImageId
146148
and:
147-
actualImageId == expectedImageId
149+
actualImageInfo == expectedImageInfo
148150
}
149151

150152
//

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

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import spock.lang.Unroll
2525
import ru.mystamps.web.dao.SeriesDao
2626
import ru.mystamps.web.dao.dto.AddSeriesDbDto
2727
import ru.mystamps.web.dao.dto.Currency
28+
import ru.mystamps.web.dao.dto.ImageInfoDto
2829
import ru.mystamps.web.dao.dto.SeriesFullInfoDto
2930
import ru.mystamps.web.model.AddImageForm
3031
import ru.mystamps.web.model.AddSeriesForm
@@ -38,7 +39,6 @@ import ru.mystamps.web.tests.DateUtils
3839
@SuppressWarnings(['ClassJavadoc', 'MethodName', 'NoDef', 'NoTabCharacter', 'TrailingWhitespace'])
3940
class SeriesServiceImplTest extends Specification {
4041
private static final BigDecimal ANY_PRICE = new BigDecimal('17')
41-
private static final Integer ANY_IMAGE_ID = 18
4242

4343
private final ImageService imageService = Mock()
4444
private final SeriesDao seriesDao = Mock()
@@ -63,7 +63,7 @@ class SeriesServiceImplTest extends Specification {
6363

6464
userId = TestObjects.TEST_USER_ID
6565

66-
imageService.save(_) >> ANY_IMAGE_ID
66+
imageService.save(_) >> TestObjects.createImageInfoDto()
6767

6868
service = new SeriesServiceImpl(
6969
seriesDao,
@@ -497,7 +497,7 @@ class SeriesServiceImplTest extends Specification {
497497
1 * imageService.save({ MultipartFile passedFile ->
498498
assert passedFile == multipartFile
499499
return true
500-
}) >> ANY_IMAGE_ID
500+
}) >> TestObjects.createImageInfoDto()
501501
}
502502

503503
@SuppressWarnings(['ClosureAsLastMethodParameter', 'UnnecessaryReturnKeyword'])
@@ -512,7 +512,7 @@ class SeriesServiceImplTest extends Specification {
512512
service.add(form, userId, false)
513513
then:
514514
// FIXME: why we can't use _ as MultipartFile here?
515-
imageService.save(_) >> expectedImageId
515+
imageService.save(_) >> new ImageInfoDto(expectedImageId, "JPEG")
516516
and:
517517
1 * imageService.addToSeries({ Integer seriesId ->
518518
assert seriesId == expectedSeriesId
@@ -578,7 +578,7 @@ class SeriesServiceImplTest extends Specification {
578578
1 * imageService.save({ MultipartFile passedFile ->
579579
assert passedFile == multipartFile
580580
return true
581-
}) >> ANY_IMAGE_ID
581+
}) >> TestObjects.createImageInfoDto()
582582
}
583583

584584
@SuppressWarnings(['ClosureAsLastMethodParameter', 'UnnecessaryReturnKeyword'])
@@ -590,7 +590,7 @@ class SeriesServiceImplTest extends Specification {
590590
when:
591591
service.addImageToSeries(imageForm, expectedSeriesId, expectedUserId)
592592
then:
593-
imageService.save(_) >> expectedImageId
593+
imageService.save(_) >> new ImageInfoDto(expectedImageId, "JPEG")
594594
and:
595595
1 * imageService.addToSeries({ Integer seriesId ->
596596
assert seriesId == expectedSeriesId

0 commit comments

Comments
 (0)