Skip to content

Commit 1d1ebb6

Browse files
committed
test: 테스트 개선
1 parent e0d3a1a commit 1d1ebb6

File tree

1 file changed

+46
-20
lines changed

1 file changed

+46
-20
lines changed
Lines changed: 46 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,48 @@
11
package com.somemore.domains.interestcenter.handler;
22

3+
import com.somemore.center.domain.NEWCenter;
4+
import com.somemore.center.repository.NEWCenterRepository;
35
import com.somemore.domains.interestcenter.event.domain.InterestCenterCreateRecruitBoardEvent;
46
import com.somemore.domains.interestcenter.event.handler.CreateRecruitBoardHandlerImpl;
57
import com.somemore.domains.interestcenter.usecase.InterestCenterQueryUseCase;
68
import com.somemore.domains.recruitboard.event.CreateRecruitBoardEvent;
9+
import com.somemore.global.auth.oauth.domain.OAuthProvider;
710
import com.somemore.global.common.event.ServerEventPublisher;
811
import com.somemore.support.IntegrationTestSupport;
12+
import com.somemore.user.domain.User;
13+
import com.somemore.user.domain.UserRole;
14+
import com.somemore.user.dto.UserAuthInfo;
15+
import com.somemore.user.repository.user.UserRepository;
16+
import com.somemore.volunteer.domain.NEWVolunteer;
17+
import com.somemore.volunteer.repository.NEWVolunteerRepository;
918
import org.junit.jupiter.api.Test;
1019
import org.mockito.Mockito;
1120
import org.springframework.beans.factory.annotation.Autowired;
1221
import org.springframework.boot.test.mock.mockito.MockBean;
1322
import org.springframework.transaction.annotation.Transactional;
1423

15-
import java.util.List;
16-
import java.util.UUID;
24+
import java.util.Collections;
1725

1826
import static org.mockito.ArgumentMatchers.argThat;
19-
import static org.mockito.Mockito.*;
27+
import static org.mockito.Mockito.times;
28+
import static org.mockito.Mockito.verify;
29+
import static org.mockito.Mockito.when;
2030

2131
@Transactional
2232
class CreateRecruitBoardHandlerImplTest extends IntegrationTestSupport {
2333

2434
@Autowired
2535
private CreateRecruitBoardHandlerImpl createRecruitBoardHandler;
2636

37+
@Autowired
38+
private UserRepository userRepository;
39+
40+
@Autowired
41+
private NEWVolunteerRepository volunteerRepository;
42+
43+
@Autowired
44+
private NEWCenterRepository centerRepository;
45+
2746
@MockBean
2847
private InterestCenterQueryUseCase interestCenterQueryUseCase;
2948

@@ -33,33 +52,40 @@ class CreateRecruitBoardHandlerImplTest extends IntegrationTestSupport {
3352
@Test
3453
void handle_ShouldPublishEventsForVolunteers() {
3554
// given
36-
UUID centerId = UUID.randomUUID();
37-
UUID volunteerId1 = UUID.randomUUID();
38-
UUID volunteerId2 = UUID.randomUUID();
39-
UUID volunteerId3 = UUID.randomUUID();
55+
UserAuthInfo volunteerUserAuthInfo = UserAuthInfo.createForOAuth(OAuthProvider.NAVER);
56+
User volunteerUser = User.of(volunteerUserAuthInfo, UserRole.VOLUNTEER);
57+
userRepository.save(volunteerUser);
58+
59+
UserAuthInfo centerUserAuthInfo = UserAuthInfo.createForOAuth(OAuthProvider.NAVER);
60+
User centerUser = User.of(centerUserAuthInfo, UserRole.CENTER);
61+
userRepository.save(centerUser);
62+
63+
NEWVolunteer volunteer = NEWVolunteer.createDefault(volunteerUser.getId());
64+
volunteerRepository.save(volunteer);
65+
66+
NEWCenter center = NEWCenter.createDefault(centerUser.getId());
67+
centerRepository.save(center);
68+
4069
Long recruitBoardId = 123L;
4170

42-
List<UUID> volunteerIds = List.of(volunteerId1, volunteerId2, volunteerId3);
43-
when(interestCenterQueryUseCase.getVolunteerIdsByCenterId(centerId)).thenReturn(volunteerIds);
71+
when(interestCenterQueryUseCase.getVolunteerIdsByCenterId(center.getId())).thenReturn(Collections.singletonList(volunteer.getId()));
4472

4573
CreateRecruitBoardEvent createRecruitBoardEvent = CreateRecruitBoardEvent.builder()
46-
.centerId(centerId)
74+
.centerId(center.getId())
4775
.recruitBoardId(recruitBoardId)
4876
.build();
4977

5078
// when
5179
createRecruitBoardHandler.handle(createRecruitBoardEvent);
5280

5381
// then
54-
verify(serverEventPublisher, times(volunteerIds.size())).publish(Mockito.any(InterestCenterCreateRecruitBoardEvent.class));
55-
56-
for (UUID volunteerId : volunteerIds) {
57-
verify(serverEventPublisher).publish(argThat(event ->
58-
event instanceof InterestCenterCreateRecruitBoardEvent &&
59-
((InterestCenterCreateRecruitBoardEvent) event).getCenterId().equals(centerId) &&
60-
((InterestCenterCreateRecruitBoardEvent) event).getVolunteerId().equals(volunteerId) &&
61-
((InterestCenterCreateRecruitBoardEvent) event).getRecruitBoardId().equals(recruitBoardId)
62-
));
63-
}
82+
verify(serverEventPublisher, times(1)).publish(Mockito.any(InterestCenterCreateRecruitBoardEvent.class));
83+
84+
verify(serverEventPublisher).publish(argThat(event ->
85+
event instanceof InterestCenterCreateRecruitBoardEvent &&
86+
((InterestCenterCreateRecruitBoardEvent) event).getRecruitBoardId().equals(recruitBoardId) &&
87+
((InterestCenterCreateRecruitBoardEvent) event).getVolunteerId().equals(volunteer.getId())
88+
));
89+
6490
}
6591
}

0 commit comments

Comments
 (0)