Skip to content

Commit f17ff2b

Browse files
committed
SeriesSalesImportServiceImpl.saveParsedData(): add unit tests.
Fix #834
1 parent 2b83255 commit f17ff2b

File tree

3 files changed

+80
-1
lines changed

3 files changed

+80
-1
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public class SeriesSalesImportServiceImpl implements SeriesSalesImportService {
3535
private final Logger log;
3636
private final SeriesSalesImportDao seriesSalesImportDao;
3737

38-
// @todo #695 SeriesSalesImportServiceImpl.saveParsedData(): add unit tests
38+
// @todo #834 SeriesSalesImportServiceImpl.saveParsedData(): introduce dto without dates
3939
@Override
4040
@Transactional
4141
public void saveParsedData(Integer requestId, SeriesSalesParsedDataDbDto data) {
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
/**
2+
* Copyright (C) 2009-2018 Slava Semushin <slava.semushin@gmail.com>
3+
*
4+
* This program is free software; you can redistribute it and/or modify
5+
* it under the terms of the GNU General Public License as published by
6+
* the Free Software Foundation; either version 2 of the License, or
7+
* (at your option) any later version.
8+
*
9+
* This program is distributed in the hope that it will be useful,
10+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12+
* GNU General Public License for more details.
13+
*
14+
* You should have received a copy of the GNU General Public License
15+
* along with this program; if not, write to the Free Software
16+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17+
*/
18+
package ru.mystamps.web.service
19+
20+
import org.slf4j.helpers.NOPLogger
21+
22+
import spock.lang.Specification
23+
24+
import ru.mystamps.web.dao.SeriesSalesImportDao
25+
import ru.mystamps.web.dao.dto.SeriesSalesParsedDataDbDto
26+
import ru.mystamps.web.tests.Random
27+
28+
@SuppressWarnings(['ClassJavadoc', 'MethodName', 'NoDef', 'NoTabCharacter', 'TrailingWhitespace'])
29+
class SeriesSalesImportServiceImplTest extends Specification {
30+
31+
private final SeriesSalesImportDao seriesSalesImportDao = Mock()
32+
33+
private SeriesSalesImportService service
34+
35+
def setup() {
36+
service = new SeriesSalesImportServiceImpl(NOPLogger.NOP_LOGGER, seriesSalesImportDao)
37+
}
38+
39+
//
40+
// Tests for saveParsedData()
41+
//
42+
43+
def 'saveParsedData() should throw exception when request id is null'() {
44+
when:
45+
service.saveParsedData(null, TestObjects.createSeriesSalesParsedDataDbDto())
46+
then:
47+
IllegalArgumentException ex = thrown()
48+
ex.message == 'Request id must be non null'
49+
}
50+
51+
def 'saveParsedData() should throw exception when parsed data is null'() {
52+
when:
53+
service.saveParsedData(Random.id(), null)
54+
then:
55+
IllegalArgumentException ex = thrown()
56+
ex.message == 'Parsed data must be non null'
57+
}
58+
59+
def 'saveParsedData() should save series parsed data'() {
60+
given:
61+
Integer expectedRequestId = Random.id()
62+
SeriesSalesParsedDataDbDto expectedParsedData = TestObjects.createSeriesSalesParsedDataDbDto()
63+
when:
64+
service.saveParsedData(expectedRequestId, expectedParsedData)
65+
then:
66+
1 * seriesSalesImportDao.addParsedData(expectedRequestId, expectedParsedData)
67+
}
68+
69+
}

src/test/java/ru/mystamps/web/service/TestObjects.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,4 +286,14 @@ public static SeriesExtractedInfo createEmptySeriesExtractedInfo() {
286286
);
287287
}
288288

289+
public static SeriesSalesParsedDataDbDto createSeriesSalesParsedDataDbDto() {
290+
SeriesSalesParsedDataDbDto dto = new SeriesSalesParsedDataDbDto();
291+
dto.setSellerId(Random.id());
292+
dto.setPrice(Random.price());
293+
dto.setCurrency(Random.currency().toString());
294+
dto.setCreatedAt(Random.date());
295+
dto.setUpdatedAt(Random.date());
296+
return dto;
297+
}
298+
289299
}

0 commit comments

Comments
 (0)