Skip to content

Commit 192187c

Browse files
Extract the method from 4 vars in order to use DbDto object
1 parent 1c9418f commit 192187c

File tree

6 files changed

+71
-36
lines changed

6 files changed

+71
-36
lines changed

src/main/config/findbugs-filter.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,10 @@
8282
<Class name="ru.mystamps.web.feature.series.SitemapInfoDto" />
8383
<Bug pattern="EI_EXPOSE_REP,EI_EXPOSE_REP2" />
8484
</Match>
85+
<Match>
86+
<Class name="ru.mystamps.web.feature.series.importing.UpdateImportRequestStatusDbDto" />
87+
<Bug pattern="EI_EXPOSE_REP,EI_EXPOSE_REP2" />
88+
</Match>
8589
<Match>
8690
<Class name="ru.mystamps.web.feature.series.importing.ImportSeriesDbDto" />
8791
<Or>

src/main/java/ru/mystamps/web/feature/series/importing/JdbcSeriesImportDao.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -123,21 +123,20 @@ public void setSeriesIdAndChangeStatus(
123123
);
124124
}
125125

126-
// @todo #660 JdbcSeriesImportDao.changeStatus(): introduce dao
127126
@Override
128-
public void changeStatus(Integer requestId, Date date, String oldStatus, String newStatus) {
127+
public void changeStatus(UpdateImportRequestStatusDbDto requestStatus) {
129128
Map<String, Object> params = new HashMap<>();
130-
params.put("id", requestId);
131-
params.put("date", date);
132-
params.put("old_status", oldStatus);
133-
params.put("new_status", newStatus);
129+
params.put("id", requestStatus.getRequestId());
130+
params.put("date", requestStatus.getDate());
131+
params.put("old_status", requestStatus.getOldStatus());
132+
params.put("new_status", requestStatus.getNewStatus());
134133

135134
int affected = jdbcTemplate.update(changeStatusSql, params);
136135

137136
Validate.validState(
138137
affected == 1,
139138
"Unexpected number of affected rows after updating status of request #%d: %d",
140-
requestId,
139+
requestStatus.getRequestId(),
141140
affected
142141
);
143142
}

src/main/java/ru/mystamps/web/feature/series/importing/SeriesImportDao.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ void setSeriesIdAndChangeStatus(
2929
String newStatus,
3030
Date updatedAt
3131
);
32-
void changeStatus(Integer requestId, Date date, String oldStatus, String newStatus);
32+
void changeStatus(UpdateImportRequestStatusDbDto requestStatus);
3333
ImportRequestDto findById(Integer id);
3434
void addRawContent(Integer requestId, Date createdAt, Date updatedAt, String content);
3535
String findRawContentByRequestId(Integer requestId);

src/main/java/ru/mystamps/web/feature/series/importing/SeriesImportServiceImpl.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import org.slf4j.Logger;
3131

3232
import org.springframework.context.ApplicationEventPublisher;
33+
3334
import org.springframework.transaction.annotation.Transactional;
3435

3536
import org.springframework.security.access.prepost.PreAuthorize;
@@ -136,8 +137,10 @@ public void changeStatus(Integer requestId, String oldStatus, String newStatus)
136137
Validate.isTrue(!oldStatus.equals(newStatus), "Statuses must be different");
137138

138139
Date now = new Date();
140+
UpdateImportRequestStatusDbDto status =
141+
new UpdateImportRequestStatusDbDto(requestId, now, oldStatus, newStatus);
139142

140-
seriesImportDao.changeStatus(requestId, now, oldStatus, newStatus);
143+
seriesImportDao.changeStatus(status);
141144
}
142145

143146
@Override
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
/*
2+
* Copyright (C) 2009-2019 Slava Semushin <[email protected]>
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.feature.series.importing;
19+
20+
import java.util.Date;
21+
22+
import lombok.Getter;
23+
import lombok.RequiredArgsConstructor;
24+
import lombok.ToString;
25+
26+
@Getter
27+
@ToString
28+
@RequiredArgsConstructor
29+
public class UpdateImportRequestStatusDbDto {
30+
private final Integer requestId;
31+
private final Date date;
32+
private final String oldStatus;
33+
private final String newStatus;
34+
}

src/test/groovy/ru/mystamps/web/feature/series/importing/SeriesImportServiceImplTest.groovy

Lines changed: 22 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ class SeriesImportServiceImplTest extends Specification {
101101
ex.message == 'User id must be non null'
102102
}
103103

104-
def 'addRequest() should throw exception if url is incorrect'() {
104+
def 'addRequest() should throw exception if url is incorrect'() {
105105
given:
106106
form.setUrl('http://example.org/текст c пробелами')
107107
when:
@@ -318,15 +318,14 @@ class SeriesImportServiceImplTest extends Specification {
318318
when:
319319
service.changeStatus(expectedRequestId, expectedOldStatus, expectedNewStatus)
320320
then:
321-
1 * seriesImportDao.changeStatus(
322-
expectedRequestId,
323-
{ Date date ->
324-
assert DateUtils.roughlyEqual(date, new Date())
325-
return true
326-
},
327-
expectedOldStatus,
328-
expectedNewStatus
329-
)
321+
1 * seriesImportDao.changeStatus { UpdateImportRequestStatusDbDto status ->
322+
assert status?.requestId == expectedRequestId
323+
assert DateUtils.roughlyEqual(status.date, new Date())
324+
assert status?.oldStatus == expectedOldStatus
325+
assert status?.newStatus == expectedNewStatus
326+
return true
327+
}
328+
330329
}
331330

332331
//
@@ -367,7 +366,7 @@ class SeriesImportServiceImplTest extends Specification {
367366
IllegalArgumentException ex = thrown()
368367
ex.message == 'Request id must be non null'
369368
}
370-
369+
371370
@Unroll
372371
def "saveDownloadedContent() should throw exception when content is '#content'"(String content) {
373372
when:
@@ -410,15 +409,13 @@ class SeriesImportServiceImplTest extends Specification {
410409
when:
411410
service.saveDownloadedContent(expectedRequestId, between(1, 10).english())
412411
then:
413-
1 * seriesImportDao.changeStatus(
414-
expectedRequestId,
415-
{ Date date ->
416-
assert DateUtils.roughlyEqual(date, new Date())
412+
1 * seriesImportDao.changeStatus { UpdateImportRequestStatusDbDto status ->
413+
assert status?.requestId == expectedRequestId
414+
assert DateUtils.roughlyEqual(status.date, new Date())
415+
assert status?.oldStatus == SeriesImportRequestStatus.UNPROCESSED
416+
assert status?.newStatus == SeriesImportRequestStatus.DOWNLOADING_SUCCEEDED
417417
return true
418-
},
419-
SeriesImportRequestStatus.UNPROCESSED,
420-
SeriesImportRequestStatus.DOWNLOADING_SUCCEEDED
421-
)
418+
}
422419
}
423420

424421
//
@@ -568,15 +565,13 @@ class SeriesImportServiceImplTest extends Specification {
568565
when:
569566
service.saveParsedData(Random.id(), TestObjects.createEmptySeriesExtractedInfo(), Random.url())
570567
then:
571-
1 * seriesImportDao.changeStatus(
572-
_ as Integer,
573-
{ Date date ->
574-
assert DateUtils.roughlyEqual(date, new Date())
568+
1 * seriesImportDao.changeStatus { UpdateImportRequestStatusDbDto status ->
569+
assert DateUtils.roughlyEqual(status.date, new Date())
570+
assert status?.oldStatus == SeriesImportRequestStatus.DOWNLOADING_SUCCEEDED
571+
assert status?.newStatus == SeriesImportRequestStatus.PARSING_SUCCEEDED
575572
return true
576-
},
577-
SeriesImportRequestStatus.DOWNLOADING_SUCCEEDED,
578-
SeriesImportRequestStatus.PARSING_SUCCEEDED
579-
)
573+
}
574+
580575
}
581576

582577
//

0 commit comments

Comments
 (0)