Skip to content

Commit 7bb1907

Browse files
committed
ImagePersistenceStrategy.get(): replace usage of Image.
Addressed to #120 No functional changes.
1 parent b19bcef commit 7bb1907

8 files changed

+20
-33
lines changed

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030

3131
import ru.mystamps.web.dao.JdbcImageDataDao;
3232
import ru.mystamps.web.dao.dto.AddImageDataDbDto;
33-
import ru.mystamps.web.entity.Image;
3433
import ru.mystamps.web.service.dto.DbImageDto;
3534
import ru.mystamps.web.service.dto.ImageDto;
3635
import ru.mystamps.web.service.dto.ImageInfoDto;
@@ -65,7 +64,7 @@ public void save(MultipartFile file, ImageInfoDto image) {
6564
}
6665

6766
@Override
68-
public ImageDto get(Image image) {
67+
public ImageDto get(ImageInfoDto image) {
6968
DbImageDto imageDto = imageDataDao.findByImageId(image.getId());
7069
if (imageDto == null) {
7170
LOG.warn("Found image without content: #{}", image.getId());

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

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

3030
import org.springframework.web.multipart.MultipartFile;
3131

32-
import ru.mystamps.web.entity.Image;
3332
import ru.mystamps.web.service.dto.FsImageDto;
3433
import ru.mystamps.web.service.dto.ImageDto;
3534
import ru.mystamps.web.service.dto.ImageInfoDto;
@@ -76,13 +75,8 @@ public void save(MultipartFile file, ImageInfoDto image) {
7675
}
7776

7877
@Override
79-
public ImageDto get(Image image) {
80-
Path dest = createFile(
81-
new ImageInfoDto(
82-
image.getId(),
83-
image.getType().toString()
84-
)
85-
);
78+
public ImageDto get(ImageInfoDto image) {
79+
Path dest = createFile(image);
8680
if (!exists(dest)) {
8781
LOG.warn("Found image without content: #{} ({} doesn't exist)", image.getId(), dest);
8882
return null;

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,10 @@
1919

2020
import org.springframework.web.multipart.MultipartFile;
2121

22-
import ru.mystamps.web.entity.Image;
2322
import ru.mystamps.web.service.dto.ImageDto;
2423
import ru.mystamps.web.service.dto.ImageInfoDto;
2524

2625
public interface ImagePersistenceStrategy {
2726
void save(MultipartFile file, ImageInfoDto image);
28-
ImageDto get(Image image);
27+
ImageDto get(ImageInfoDto image);
2928
}

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,9 @@ public ImageDto get(Integer imageId) {
9595
return null;
9696
}
9797

98-
return imagePersistenceStrategy.get(image);
98+
return imagePersistenceStrategy.get(
99+
new ImageInfoDto(image.getId(), image.getType().toString())
100+
);
99101
}
100102

101103
@Override

src/main/java/ru/mystamps/web/service/dto/FsImageDto.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,15 @@
2020
import lombok.EqualsAndHashCode;
2121
import lombok.RequiredArgsConstructor;
2222

23-
import ru.mystamps.web.entity.Image;
24-
2523
@EqualsAndHashCode
2624
@RequiredArgsConstructor
2725
public class FsImageDto implements ImageDto {
28-
private final Image image;
26+
private final ImageInfoDto image;
2927
private final byte[] data;
3028

3129
@Override
3230
public String getType() {
33-
return image.getType().toString();
31+
return image.getType();
3432
}
3533

3634
@Override

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

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import spock.lang.Specification
2323

2424
import ru.mystamps.web.dao.JdbcImageDataDao
2525
import ru.mystamps.web.dao.dto.AddImageDataDbDto
26-
import ru.mystamps.web.entity.Image
2726
import ru.mystamps.web.service.dto.ImageDto
2827
import ru.mystamps.web.service.dto.ImageInfoDto
2928
import ru.mystamps.web.service.exception.ImagePersistenceException
@@ -32,7 +31,6 @@ class DatabaseImagePersistenceStrategyTest extends Specification {
3231

3332
private JdbcImageDataDao imageDataDao = Mock()
3433
private MultipartFile multipartFile = Mock()
35-
private Image image = TestObjects.createImage()
3634
private ImageInfoDto imageInfoDto = TestObjects.createImageInfoDto()
3735

3836
private ImagePersistenceStrategy strategy = new DatabaseImagePersistenceStrategy(imageDataDao)
@@ -83,12 +81,9 @@ class DatabaseImagePersistenceStrategyTest extends Specification {
8381

8482
def "get() should pass image to image data dao"() {
8583
given:
86-
Integer expectedImageId = image.getId()
87-
and:
88-
Image image = TestObjects.createImage()
89-
image.setId(expectedImageId)
84+
Integer expectedImageId = imageInfoDto.id
9085
when:
91-
strategy.get(image)
86+
strategy.get(imageInfoDto)
9287
then:
9388
1 * imageDataDao.findByImageId({ Integer imageId ->
9489
assert imageId == expectedImageId
@@ -100,7 +95,7 @@ class DatabaseImagePersistenceStrategyTest extends Specification {
10095
given:
10196
imageDataDao.findByImageId(_ as Integer) >> null
10297
when:
103-
ImageDto result = strategy.get(image)
98+
ImageDto result = strategy.get(imageInfoDto)
10499
then:
105100
result == null
106101
}
@@ -111,7 +106,7 @@ class DatabaseImagePersistenceStrategyTest extends Specification {
111106
and:
112107
imageDataDao.findByImageId(_ as Integer) >> expectedImageDto
113108
when:
114-
ImageDto result = strategy.get(image)
109+
ImageDto result = strategy.get(imageInfoDto)
115110
then:
116111
result == expectedImageDto
117112
}

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

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ class FilesystemImagePersistenceStrategyTest extends Specification {
3232
private static final STORAGE_DIR = File.separator + 'tmp'
3333

3434
private MultipartFile multipartFile = Mock()
35-
private Image image = TestObjects.createImage()
3635
private ImageInfoDto imageInfoDto = TestObjects.createImageInfoDto()
3736
private Path mockFile = Mock(Path)
3837

@@ -96,7 +95,7 @@ class FilesystemImagePersistenceStrategyTest extends Specification {
9695
and:
9796
strategy.createFile(_ as Image) >> mockFile
9897
when:
99-
ImageDto result = strategy.get(image)
98+
ImageDto result = strategy.get(imageInfoDto)
10099
then:
101100
result == null
102101
}
@@ -109,7 +108,7 @@ class FilesystemImagePersistenceStrategyTest extends Specification {
109108
and:
110109
strategy.toByteArray(_ as Path) >> { throw new IOException() }
111110
when:
112-
strategy.get(image)
111+
strategy.get(imageInfoDto)
113112
then:
114113
ImagePersistenceException ex = thrown()
115114
and:
@@ -118,7 +117,7 @@ class FilesystemImagePersistenceStrategyTest extends Specification {
118117

119118
def "get() should return result with correct type and content"() {
120119
given:
121-
String expectedType = image.type
120+
String expectedType = imageInfoDto.type
122121
and:
123122
byte[] expectedData = 'any data'.bytes
124123
and:
@@ -128,7 +127,7 @@ class FilesystemImagePersistenceStrategyTest extends Specification {
128127
and:
129128
strategy.toByteArray(_ as Path) >> expectedData
130129
when:
131-
ImageDto result = strategy.get(image)
130+
ImageDto result = strategy.get(imageInfoDto)
132131
then:
133132
result.type == expectedType
134133
result.data == expectedData

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -200,8 +200,9 @@ class ImageServiceImplTest extends Specification {
200200
when:
201201
ImageDto actualImageDto = service.get(7)
202202
then:
203-
1 * imagePersistenceStrategy.get({ Image passedImage ->
204-
assert passedImage == expectedImage
203+
1 * imagePersistenceStrategy.get({ ImageInfoDto passedImage ->
204+
assert passedImage?.id == expectedImage.id
205+
assert passedImage?.type == expectedImage.type.toString()
205206
return true
206207
}) >> expectedImageDto
207208
and:

0 commit comments

Comments
 (0)