Skip to content

Commit e4aea21

Browse files
committed
test(volunteer-apply): 봉사 시간, 횟수 정산 NewVolunteer 추가 테스트
1 parent a837d44 commit e4aea21

File tree

5 files changed

+203
-137
lines changed

5 files changed

+203
-137
lines changed

src/test/java/com/somemore/domains/volunteer/service/UpdateVolunteerLockServiceTest.java

Lines changed: 0 additions & 86 deletions
This file was deleted.

src/test/java/com/somemore/domains/volunteerapply/service/ApplyVolunteerApplyStatusChangeServiceTest.java

Lines changed: 48 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,32 @@
11
package com.somemore.domains.volunteerapply.service;
22

3+
import static com.somemore.domains.recruitboard.domain.RecruitStatus.CLOSED;
4+
import static com.somemore.domains.recruitboard.domain.RecruitStatus.RECRUITING;
5+
import static com.somemore.domains.recruitboard.domain.VolunteerCategory.OTHER;
6+
import static com.somemore.domains.volunteerapply.domain.ApplyStatus.WAITING;
7+
import static com.somemore.global.exception.ExceptionMessage.DUPLICATE_APPLICATION;
8+
import static com.somemore.global.exception.ExceptionMessage.RECRUITMENT_NOT_OPEN;
9+
import static com.somemore.support.fixture.LocalDateTimeFixture.createStartDateTime;
10+
import static org.assertj.core.api.Assertions.assertThat;
11+
import static org.assertj.core.api.Assertions.assertThatThrownBy;
12+
313
import com.somemore.domains.recruitboard.domain.RecruitBoard;
14+
import com.somemore.domains.recruitboard.domain.RecruitStatus;
15+
import com.somemore.domains.recruitboard.domain.RecruitmentInfo;
416
import com.somemore.domains.recruitboard.repository.RecruitBoardRepository;
517
import com.somemore.domains.volunteerapply.domain.VolunteerApply;
618
import com.somemore.domains.volunteerapply.dto.request.VolunteerApplyCreateRequestDto;
719
import com.somemore.domains.volunteerapply.repository.VolunteerApplyRepository;
820
import com.somemore.global.exception.BadRequestException;
921
import com.somemore.support.IntegrationTestSupport;
22+
import java.time.LocalDateTime;
23+
import java.util.Optional;
24+
import java.util.UUID;
1025
import org.junit.jupiter.api.DisplayName;
1126
import org.junit.jupiter.api.Test;
1227
import org.springframework.beans.factory.annotation.Autowired;
1328
import org.springframework.transaction.annotation.Transactional;
1429

15-
import java.util.Optional;
16-
import java.util.UUID;
17-
18-
import static com.somemore.domains.volunteerapply.domain.ApplyStatus.WAITING;
19-
import static com.somemore.global.exception.ExceptionMessage.RECRUITMENT_NOT_OPEN;
20-
import static com.somemore.support.fixture.RecruitBoardFixture.createCloseRecruitBoard;
21-
import static com.somemore.support.fixture.RecruitBoardFixture.createRecruitBoard;
22-
import static org.assertj.core.api.Assertions.assertThat;
23-
import static org.assertj.core.api.Assertions.assertThatThrownBy;
24-
2530
@Transactional
2631
class ApplyVolunteerApplyStatusChangeServiceTest extends IntegrationTestSupport {
2732

@@ -38,7 +43,7 @@ class ApplyVolunteerApplyStatusChangeServiceTest extends IntegrationTestSupport
3843
@Test
3944
void apply() {
4045
// given
41-
RecruitBoard board = createRecruitBoard();
46+
RecruitBoard board = createRecruitBoard(RECRUITING);
4247
recruitBoardRepository.save(board);
4348

4449
VolunteerApplyCreateRequestDto dto = VolunteerApplyCreateRequestDto.builder()
@@ -61,7 +66,7 @@ void apply() {
6166
@Test
6267
void applyWhenCLOSE() {
6368
// given
64-
RecruitBoard board = createCloseRecruitBoard();
69+
RecruitBoard board = createRecruitBoard(CLOSED);
6570
recruitBoardRepository.save(board);
6671

6772
VolunteerApplyCreateRequestDto dto = VolunteerApplyCreateRequestDto.builder()
@@ -73,16 +78,16 @@ void applyWhenCLOSE() {
7378
// when
7479
// then
7580
assertThatThrownBy(
76-
() -> volunteerApplyCommandService.apply(dto, volunteerId)
77-
).isInstanceOf(BadRequestException.class)
81+
() -> volunteerApplyCommandService.apply(dto, volunteerId))
82+
.isInstanceOf(BadRequestException.class)
7883
.hasMessage(RECRUITMENT_NOT_OPEN.getMessage());
7984
}
8085

8186
@DisplayName("중복으로 지원할 수 없다.")
8287
@Test
8388
void applyWhenDuplicate() {
8489
// given
85-
RecruitBoard board = createCloseRecruitBoard();
90+
RecruitBoard board = createRecruitBoard(RECRUITING);
8691
recruitBoardRepository.save(board);
8792

8893
UUID volunteerId = UUID.randomUUID();
@@ -101,9 +106,34 @@ void applyWhenDuplicate() {
101106
// when
102107
// then
103108
assertThatThrownBy(
104-
() -> volunteerApplyCommandService.apply(dto, volunteerId)
105-
).isInstanceOf(BadRequestException.class)
106-
.hasMessage(RECRUITMENT_NOT_OPEN.getMessage());
109+
() -> volunteerApplyCommandService.apply(dto, volunteerId))
110+
.isInstanceOf(BadRequestException.class)
111+
.hasMessage(DUPLICATE_APPLICATION.getMessage());
112+
}
113+
114+
private static RecruitBoard createRecruitBoard(RecruitStatus status) {
115+
116+
LocalDateTime startDateTime = createStartDateTime();
117+
LocalDateTime endDateTime = startDateTime.plusHours(2);
118+
119+
RecruitmentInfo recruitmentInfo = RecruitmentInfo.builder()
120+
.region("지역")
121+
.recruitmentCount(1)
122+
.volunteerStartDateTime(startDateTime)
123+
.volunteerEndDateTime(endDateTime)
124+
.volunteerHours(2)
125+
.volunteerCategory(OTHER)
126+
.admitted(true)
127+
.build();
128+
129+
return RecruitBoard.builder()
130+
.centerId(UUID.randomUUID())
131+
.locationId(1L)
132+
.title("제목")
133+
.content("내용")
134+
.recruitmentInfo(recruitmentInfo)
135+
.status(status)
136+
.build();
107137
}
108138

109139
}

src/test/java/com/somemore/domains/volunteerapply/service/SettleVolunteerApplyFacadeServiceTest.java

Lines changed: 36 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,30 @@
11
package com.somemore.domains.volunteerapply.service;
22

3+
import static com.somemore.domains.recruitboard.domain.VolunteerCategory.COUNSELING;
4+
import static com.somemore.domains.volunteerapply.domain.ApplyStatus.APPROVED;
5+
import static com.somemore.global.exception.ExceptionMessage.RECRUIT_BOARD_ID_MISMATCH;
6+
import static com.somemore.global.exception.ExceptionMessage.UNAUTHORIZED_RECRUIT_BOARD;
7+
import static com.somemore.global.exception.ExceptionMessage.VOLUNTEER_APPLY_LIST_MISMATCH;
8+
import static com.somemore.support.fixture.RecruitBoardFixture.createCompletedRecruitBoard;
9+
import static org.assertj.core.api.Assertions.assertThat;
10+
import static org.assertj.core.api.Assertions.assertThatThrownBy;
11+
312
import com.somemore.domains.recruitboard.domain.RecruitBoard;
413
import com.somemore.domains.recruitboard.repository.RecruitBoardRepository;
5-
import com.somemore.domains.volunteer.domain.Volunteer;
6-
import com.somemore.domains.volunteer.repository.VolunteerRepository;
714
import com.somemore.domains.volunteerapply.domain.VolunteerApply;
815
import com.somemore.domains.volunteerapply.dto.request.VolunteerApplySettleRequestDto;
916
import com.somemore.domains.volunteerapply.repository.VolunteerApplyRepository;
1017
import com.somemore.global.exception.BadRequestException;
1118
import com.somemore.support.IntegrationTestSupport;
19+
import com.somemore.volunteer.domain.NEWVolunteer;
20+
import com.somemore.volunteer.repository.NEWVolunteerRepository;
21+
import java.util.List;
22+
import java.util.UUID;
1223
import org.junit.jupiter.api.DisplayName;
1324
import org.junit.jupiter.api.Test;
1425
import org.springframework.beans.factory.annotation.Autowired;
1526
import org.springframework.transaction.annotation.Transactional;
1627

17-
import java.util.List;
18-
import java.util.UUID;
19-
20-
import static com.somemore.domains.recruitboard.domain.VolunteerCategory.COUNSELING;
21-
import static com.somemore.domains.volunteerapply.domain.ApplyStatus.APPROVED;
22-
import static com.somemore.global.auth.oauth.domain.OAuthProvider.NAVER;
23-
import static com.somemore.global.exception.ExceptionMessage.*;
24-
import static com.somemore.support.fixture.RecruitBoardFixture.createCompletedRecruitBoard;
25-
import static org.assertj.core.api.Assertions.assertThat;
26-
import static org.assertj.core.api.Assertions.assertThatThrownBy;
27-
2828
@Transactional
2929
class SettleVolunteerApplyFacadeServiceTest extends IntegrationTestSupport {
3030

@@ -38,17 +38,17 @@ class SettleVolunteerApplyFacadeServiceTest extends IntegrationTestSupport {
3838
private VolunteerApplyRepository volunteerApplyRepository;
3939

4040
@Autowired
41-
private VolunteerRepository volunteerRepository;
41+
private NEWVolunteerRepository volunteerRepository;
4242

4343
@DisplayName("봉사 활동 지원을 정산할 수 있다.")
4444
@Test
4545
void settleVolunteerApplies() {
4646
// given
4747
UUID centerId = UUID.randomUUID();
4848

49-
Volunteer volunteer1 = volunteerRepository.save(createVolunteer());
50-
Volunteer volunteer2 = volunteerRepository.save(createVolunteer());
51-
Volunteer volunteer3 = volunteerRepository.save(createVolunteer());
49+
NEWVolunteer volunteer1 = volunteerRepository.save(createVolunteer());
50+
NEWVolunteer volunteer2 = volunteerRepository.save(createVolunteer());
51+
NEWVolunteer volunteer3 = volunteerRepository.save(createVolunteer());
5252

5353
RecruitBoard board = createCompletedRecruitBoard(centerId, COUNSELING);
5454
recruitBoardRepository.save(board);
@@ -75,9 +75,12 @@ void settleVolunteerApplies() {
7575
assertThat(findApply2.getAttended()).isTrue();
7676
assertThat(findApply3.getAttended()).isTrue();
7777

78-
Volunteer findVolunteer1 = volunteerRepository.findById(volunteer1.getId()).orElseThrow();
79-
Volunteer findVolunteer2 = volunteerRepository.findById(volunteer2.getId()).orElseThrow();
80-
Volunteer findVolunteer3 = volunteerRepository.findById(volunteer3.getId()).orElseThrow();
78+
NEWVolunteer findVolunteer1 = volunteerRepository.findById(volunteer1.getId())
79+
.orElseThrow();
80+
NEWVolunteer findVolunteer2 = volunteerRepository.findById(volunteer2.getId())
81+
.orElseThrow();
82+
NEWVolunteer findVolunteer3 = volunteerRepository.findById(volunteer3.getId())
83+
.orElseThrow();
8184

8285
assertThat(findVolunteer1.getTotalVolunteerHours()).isEqualTo(hour);
8386
assertThat(findVolunteer2.getTotalVolunteerHours()).isEqualTo(hour);
@@ -94,7 +97,7 @@ void settleVolunteerAppliesWhenNotExistId() {
9497
// given
9598
UUID centerId = UUID.randomUUID();
9699

97-
Volunteer volunteer = volunteerRepository.save(createVolunteer());
100+
NEWVolunteer volunteer = volunteerRepository.save(createVolunteer());
98101

99102
RecruitBoard board = createCompletedRecruitBoard(centerId, COUNSELING);
100103
recruitBoardRepository.save(board);
@@ -109,8 +112,8 @@ void settleVolunteerAppliesWhenNotExistId() {
109112
// when
110113
// then
111114
assertThatThrownBy(
112-
() -> settleVolunteerApplyFacadeService.settleVolunteerApplies(dto, centerId)
113-
).isInstanceOf(BadRequestException.class)
115+
() -> settleVolunteerApplyFacadeService.settleVolunteerApplies(dto, centerId))
116+
.isInstanceOf(BadRequestException.class)
114117
.hasMessage(VOLUNTEER_APPLY_LIST_MISMATCH.getMessage());
115118

116119
}
@@ -121,8 +124,8 @@ void settleVolunteerAppliesWhenMismatchApplyAndRecruitBoard() {
121124
// given
122125
UUID centerId = UUID.randomUUID();
123126

124-
Volunteer volunteer1 = volunteerRepository.save(createVolunteer());
125-
Volunteer volunteer2 = volunteerRepository.save(createVolunteer());
127+
NEWVolunteer volunteer1 = volunteerRepository.save(createVolunteer());
128+
NEWVolunteer volunteer2 = volunteerRepository.save(createVolunteer());
126129

127130
RecruitBoard board = createCompletedRecruitBoard(centerId, COUNSELING);
128131
recruitBoardRepository.save(board);
@@ -138,8 +141,8 @@ void settleVolunteerAppliesWhenMismatchApplyAndRecruitBoard() {
138141
// when
139142
// then
140143
assertThatThrownBy(
141-
() -> settleVolunteerApplyFacadeService.settleVolunteerApplies(dto, centerId)
142-
).isInstanceOf(BadRequestException.class)
144+
() -> settleVolunteerApplyFacadeService.settleVolunteerApplies(dto, centerId))
145+
.isInstanceOf(BadRequestException.class)
143146
.hasMessage(RECRUIT_BOARD_ID_MISMATCH.getMessage());
144147
}
145148

@@ -149,8 +152,8 @@ void settleVolunteerAppliesWhenNoAuthCenter() {
149152
// given
150153
UUID wrongId = UUID.randomUUID();
151154

152-
Volunteer volunteer1 = volunteerRepository.save(createVolunteer());
153-
Volunteer volunteer2 = volunteerRepository.save(createVolunteer());
155+
NEWVolunteer volunteer1 = volunteerRepository.save(createVolunteer());
156+
NEWVolunteer volunteer2 = volunteerRepository.save(createVolunteer());
154157

155158
RecruitBoard board = createCompletedRecruitBoard(UUID.randomUUID(), COUNSELING);
156159
recruitBoardRepository.save(board);
@@ -166,13 +169,13 @@ void settleVolunteerAppliesWhenNoAuthCenter() {
166169
// when
167170
// then
168171
assertThatThrownBy(
169-
() -> settleVolunteerApplyFacadeService.settleVolunteerApplies(dto, wrongId)
170-
).isInstanceOf(BadRequestException.class)
172+
() -> settleVolunteerApplyFacadeService.settleVolunteerApplies(dto, wrongId))
173+
.isInstanceOf(BadRequestException.class)
171174
.hasMessage(UNAUTHORIZED_RECRUIT_BOARD.getMessage());
172175
}
173176

174-
private static Volunteer createVolunteer() {
175-
return Volunteer.createDefault(NAVER, "naver");
177+
private static NEWVolunteer createVolunteer() {
178+
return NEWVolunteer.createDefault(UUID.randomUUID());
176179
}
177180

178181
private static VolunteerApply createApply(UUID volunteerId, Long recruitId) {
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package com.somemore.volunteer.domain;
2+
3+
import static org.assertj.core.api.Assertions.assertThat;
4+
5+
import java.util.UUID;
6+
import org.junit.jupiter.api.DisplayName;
7+
import org.junit.jupiter.api.Test;
8+
9+
class NEWVolunteerTest {
10+
11+
@DisplayName("봉사 스텟을 업데이트할 수 있다")
12+
@Test
13+
void updateVolunteerStats() {
14+
// given
15+
int hour = 8;
16+
int cnt = 1;
17+
NEWVolunteer volunteer = createVolunteer();
18+
19+
// when
20+
volunteer.updateVolunteerStats(hour, cnt);
21+
22+
// then
23+
assertThat(volunteer.getTotalVolunteerCount()).isEqualTo(cnt);
24+
assertThat(volunteer.getTotalVolunteerHours()).isEqualTo(hour);
25+
}
26+
27+
private NEWVolunteer createVolunteer() {
28+
UUID userId = UUID.randomUUID();
29+
30+
return NEWVolunteer.createDefault(userId);
31+
}
32+
33+
}

0 commit comments

Comments
 (0)