Skip to content

Commit 6a8c2d4

Browse files
committed
test(recruit-board): 이미지 링크 제거에 따른 테스트
1 parent 8758386 commit 6a8c2d4

File tree

9 files changed

+37
-111
lines changed

9 files changed

+37
-111
lines changed

src/test/java/com/somemore/domains/recruitboard/controller/RecruitBoardCommandApiControllerTest.java

Lines changed: 33 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,19 @@
11
package com.somemore.domains.recruitboard.controller;
22

3+
import static com.somemore.domains.recruitboard.domain.RecruitStatus.CLOSED;
4+
import static com.somemore.domains.recruitboard.domain.VolunteerCategory.OTHER;
5+
import static com.somemore.support.fixture.LocalDateTimeFixture.createStartDateTime;
6+
import static org.mockito.ArgumentMatchers.any;
7+
import static org.mockito.BDDMockito.given;
8+
import static org.mockito.BDDMockito.willDoNothing;
9+
import static org.springframework.http.MediaType.APPLICATION_JSON;
10+
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete;
11+
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.patch;
12+
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
13+
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put;
14+
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
15+
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
16+
317
import com.somemore.domains.location.dto.request.LocationCreateRequestDto;
418
import com.somemore.domains.recruitboard.domain.RecruitStatus;
519
import com.somemore.domains.recruitboard.dto.request.RecruitBoardCreateRequestDto;
@@ -9,34 +23,14 @@
923
import com.somemore.domains.recruitboard.usecase.CreateRecruitBoardUseCase;
1024
import com.somemore.domains.recruitboard.usecase.DeleteRecruitBoardUseCase;
1125
import com.somemore.domains.recruitboard.usecase.UpdateRecruitBoardUseCase;
12-
import com.somemore.global.imageupload.usecase.ImageUploadUseCase;
1326
import com.somemore.support.ControllerTestSupport;
1427
import com.somemore.support.annotation.MockUser;
15-
import com.somemore.support.annotation.WithMockCustomUser;
16-
import org.junit.jupiter.api.DisplayName;
17-
import org.junit.jupiter.api.Test;
18-
import org.springframework.boot.test.mock.mockito.MockBean;
19-
import org.springframework.http.MediaType;
20-
import org.springframework.mock.web.MockHttpServletRequest;
21-
import org.springframework.mock.web.MockMultipartFile;
22-
import org.springframework.test.web.servlet.request.MockMultipartHttpServletRequestBuilder;
23-
import org.springframework.test.web.servlet.request.RequestPostProcessor;
24-
2528
import java.math.BigDecimal;
2629
import java.time.LocalDateTime;
2730
import java.util.UUID;
28-
29-
import static com.somemore.domains.recruitboard.domain.RecruitStatus.CLOSED;
30-
import static com.somemore.domains.recruitboard.domain.VolunteerCategory.OTHER;
31-
import static com.somemore.support.fixture.LocalDateTimeFixture.createStartDateTime;
32-
import static org.mockito.ArgumentMatchers.any;
33-
import static org.mockito.ArgumentMatchers.anyString;
34-
import static org.mockito.BDDMockito.given;
35-
import static org.mockito.BDDMockito.willDoNothing;
36-
import static org.springframework.http.MediaType.MULTIPART_FORM_DATA;
37-
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
38-
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
39-
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
31+
import org.junit.jupiter.api.DisplayName;
32+
import org.junit.jupiter.api.Test;
33+
import org.springframework.boot.test.mock.mockito.MockBean;
4034

4135
class RecruitBoardCommandApiControllerTest extends ControllerTestSupport {
4236

@@ -49,8 +43,6 @@ class RecruitBoardCommandApiControllerTest extends ControllerTestSupport {
4943
@MockBean
5044
private DeleteRecruitBoardUseCase deleteRecruitBoardUseCase;
5145

52-
@MockBean
53-
private ImageUploadUseCase imageUploadUseCase;
5446

5547
@Test
5648
@DisplayName("봉사 활동 모집글 등록 성공 테스트")
@@ -66,7 +58,7 @@ void createRecruitBoard_success() throws Exception {
6658
.longitude(BigDecimal.valueOf(127.010842267696))
6759
.build();
6860

69-
RecruitBoardCreateRequestDto dto = RecruitBoardCreateRequestDto.builder()
61+
RecruitBoardCreateRequestDto requestDto = RecruitBoardCreateRequestDto.builder()
7062
.title("봉사 모집글 작성")
7163
.content("봉사 하실분을 모집합니다. <br>")
7264
.region("지역")
@@ -79,37 +71,21 @@ void createRecruitBoard_success() throws Exception {
7971
.location(location)
8072
.build();
8173

82-
MockMultipartFile imageFile = new MockMultipartFile(
83-
"img_file",
84-
"test-image.jpg",
85-
MediaType.IMAGE_JPEG_VALUE,
86-
"test image content".getBytes()
87-
);
88-
89-
MockMultipartFile requestData = new MockMultipartFile(
90-
"data",
91-
"",
92-
MediaType.APPLICATION_JSON_VALUE,
93-
objectMapper.writeValueAsBytes(dto)
94-
);
95-
96-
String mockImageUrl = "http://example.com/image/test-image.jpg";
97-
long mockRecruitBoardId = 1L;
74+
String requestBody = objectMapper.writeValueAsString(requestDto);
75+
long boardId = 1L;
9876

99-
given(imageUploadUseCase.uploadImage(any())).willReturn(mockImageUrl);
100-
given(createRecruitBoardUseCase.createRecruitBoard(any(), any(UUID.class),
101-
anyString())).willReturn(mockRecruitBoardId);
77+
given(createRecruitBoardUseCase.createRecruitBoard(any(), any(UUID.class)))
78+
.willReturn(boardId);
10279

10380
// when
104-
mockMvc.perform(multipart("/api/recruit-board")
105-
.file(requestData)
106-
.file(imageFile)
107-
.contentType(MULTIPART_FORM_DATA)
81+
mockMvc.perform(post("/api/recruit-board")
82+
.content(requestBody)
83+
.contentType(APPLICATION_JSON)
10884
.header("Authorization", "Bearer access-token"))
10985
// then
11086
.andExpect(status().isOk())
11187
.andExpect(jsonPath("$.code").value(201))
112-
.andExpect(jsonPath("$.data").value(mockRecruitBoardId))
88+
.andExpect(jsonPath("$.data").value(boardId))
11389
.andExpect(jsonPath("$.message").value("봉사 활동 모집글 등록 성공"));
11490
}
11591

@@ -133,40 +109,15 @@ void updateRecruitBoard() throws Exception {
133109
.admitted(true)
134110
.build();
135111

136-
MockMultipartFile imageFile = new MockMultipartFile(
137-
"img_file",
138-
"test-image.jpg",
139-
MediaType.IMAGE_JPEG_VALUE,
140-
"test image content".getBytes()
141-
);
142-
143-
MockMultipartFile requestData = new MockMultipartFile(
144-
"data",
145-
"",
146-
MediaType.APPLICATION_JSON_VALUE,
147-
objectMapper.writeValueAsBytes(requestDto)
148-
);
149-
150-
String mockImageUrl = "http://example.com/image/test-image.jpg";
151-
152-
given(imageUploadUseCase.uploadImage(any())).willReturn(mockImageUrl);
153112
willDoNothing().given(updateRecruitBoardUseCase)
154-
.updateRecruitBoard(any(), any(), any(UUID.class), anyString());
113+
.updateRecruitBoard(any(), any(), any(UUID.class));
155114

156-
MockMultipartHttpServletRequestBuilder builder = multipart("/api/recruit-board/{id}", 1);
157-
builder.with(new RequestPostProcessor() {
158-
@Override
159-
public MockHttpServletRequest postProcessRequest(MockHttpServletRequest request) {
160-
request.setMethod("PUT");
161-
return request;
162-
}
163-
});
115+
String requestBody = objectMapper.writeValueAsString(requestDto);
164116

165117
// when
166-
mockMvc.perform(builder
167-
.file(requestData)
168-
.file(imageFile)
169-
.contentType(MULTIPART_FORM_DATA)
118+
mockMvc.perform(put("/api/recruit-board/{id}", 1)
119+
.content(requestBody)
120+
.contentType(APPLICATION_JSON)
170121
.header("Authorization", "Bearer access-token"))
171122
//then
172123
.andExpect(status().isOk())
@@ -195,7 +146,7 @@ void updateRecruitBoardLocation() throws Exception {
195146
// when
196147
mockMvc.perform(put("/api/recruit-board/{id}/location", 1L)
197148
.content(requestBody)
198-
.contentType(MediaType.APPLICATION_JSON)
149+
.contentType(APPLICATION_JSON)
199150
.header("Authorization", "Bearer access-token"))
200151
// then
201152
.andExpect(status().isOk())
@@ -219,7 +170,7 @@ void updateRecruitBoardStatus() throws Exception {
219170
// when
220171
mockMvc.perform(patch("/api/recruit-board/{id}", 1L)
221172
.content(requestBody)
222-
.contentType(MediaType.APPLICATION_JSON)
173+
.contentType(APPLICATION_JSON)
223174
.header("Authorization", "Bearer access-token"))
224175
//then
225176
.andExpect(status().isOk())

src/test/java/com/somemore/domains/recruitboard/domain/RecruitBoardTest.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ void setUp() {
3030
@Test
3131
void updateRecruitBoard() {
3232
// given
33-
String imgUrl = "https://image.domain.com/updates";
3433
LocalDateTime updateStartDateTime = createUpdateStartDateTime();
3534
LocalDateTime updateEndDateTime = updateStartDateTime.plusHours(2);
3635

@@ -45,12 +44,11 @@ void updateRecruitBoard() {
4544
.admitted(true).build();
4645

4746
// when
48-
board.updateWith(dto, imgUrl);
47+
board.updateWith(dto);
4948

5049
// then
5150
assertThat(board.getTitle()).isEqualTo(dto.title());
5251
assertThat(board.getContent()).isEqualTo(dto.content());
53-
assertThat(board.getImgUrl()).isEqualTo(imgUrl);
5452
}
5553

5654
@DisplayName("봉사 활동 지역을 수정할 수 있다.")
@@ -152,7 +150,6 @@ public static RecruitBoard createRecruitBoard(UUID centerId) {
152150
.content("내용")
153151
.recruitmentInfo(recruitmentInfo)
154152
.status(RECRUITING)
155-
.imgUrl("이미지 링크")
156153
.build();
157154
}
158155
}

src/test/java/com/somemore/domains/recruitboard/repository/RecruitBoardRepositoryImplTest.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -489,7 +489,6 @@ public static RecruitBoard createRecruitBoard(UUID centerId, Long locationId,
489489
.locationId(locationId)
490490
.title("모집글 제목")
491491
.content("모집글 내용")
492-
.imgUrl("이미지 링크")
493492
.recruitmentInfo(recruitmentInfo)
494493
.status(status)
495494
.build();
@@ -514,7 +513,6 @@ public static RecruitBoard createRecruitBoard(UUID centerId, String title,
514513
.locationId(1L)
515514
.title(title)
516515
.content("모집글 내용")
517-
.imgUrl("이미지 링크")
518516
.recruitmentInfo(recruitmentInfo)
519517
.status(status)
520518
.build();
@@ -538,7 +536,6 @@ private static RecruitBoard createRecruitBoard(LocalDateTime startTime, LocalDat
538536
.locationId(1L)
539537
.title("모집글 제목")
540538
.content("모집글 내용")
541-
.imgUrl("이미지 링크")
542539
.recruitmentInfo(recruitmentInfo)
543540
.status(status)
544541
.build();

src/test/java/com/somemore/domains/recruitboard/scheduler/RecruitBoardStatusUpdateSchedulerTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,6 @@ private static RecruitBoard createRecruitBoard(LocalDateTime startTime, LocalDat
9898
.locationId(1L)
9999
.title("모집글 제목")
100100
.content("모집글 내용")
101-
.imgUrl("이미지 링크")
102101
.recruitmentInfo(recruitmentInfo)
103102
.status(status)
104103
.build();

src/test/java/com/somemore/domains/recruitboard/service/CreateRecruitBoardServiceTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,15 +71,14 @@ void createRecruitBoardWithDto() {
7171
String imgUrl = "https://image.domain.com/links";
7272

7373
// when
74-
Long saveId = createRecruitBoardService.createRecruitBoard(dto, centerId, imgUrl);
74+
Long saveId = createRecruitBoardService.createRecruitBoard(dto, centerId);
7575

7676
// then
7777
Optional<RecruitBoard> recruitBoard = recruitBoardRepository.findById(saveId);
7878

7979
assertThat(recruitBoard).isPresent();
8080
assertThat(recruitBoard.get().getId()).isEqualTo(saveId);
8181
assertThat(recruitBoard.get().getCenterId()).isEqualTo(centerId);
82-
assertThat(recruitBoard.get().getImgUrl()).isEqualTo(imgUrl);
8382
}
8483

8584
}

src/test/java/com/somemore/domains/recruitboard/service/DeleteRecruitBoardServiceTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,6 @@ private static RecruitBoard createRecruitBoard() {
7171
.locationId(1L)
7272
.title("봉사모집제목")
7373
.content("봉사모집내용")
74-
.imgUrl("https://image.domain.com/links")
7574
.recruitmentInfo(recruitmentInfo)
7675
.status(RECRUITING)
7776
.build();

src/test/java/com/somemore/domains/recruitboard/service/UpdateRecruitBoardServiceTest.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -85,16 +85,15 @@ void updateRecruitBoard() {
8585
setMockClock(current);
8686

8787
// when
88-
updateRecruitBoardService.updateRecruitBoard(dto, recruitBoard.getId(), centerId,
89-
newImgUrl);
88+
updateRecruitBoardService.updateRecruitBoard(dto, recruitBoard.getId(), centerId
89+
);
9090

9191
// then
9292
RecruitBoard updatedRecruitBoard = recruitBoardRepository.findById(recruitBoard.getId())
9393
.orElseThrow();
9494

9595
assertThat(updatedRecruitBoard.getTitle()).isEqualTo(dto.title());
9696
assertThat(updatedRecruitBoard.getContent()).isEqualTo(dto.content());
97-
assertThat(updatedRecruitBoard.getImgUrl()).isEqualTo(newImgUrl);
9897

9998
RecruitmentInfo recruitmentInfo = updatedRecruitBoard.getRecruitmentInfo();
10099
assertThat(recruitmentInfo.getRecruitmentCount()).isEqualTo(dto.recruitmentCount());
@@ -181,7 +180,6 @@ private static RecruitBoard createRecruitBoard(UUID centerId, Long locationId,
181180
.locationId(locationId)
182181
.title("봉사모집제목")
183182
.content("봉사모집내용")
184-
.imgUrl("https://image.domain.com/links")
185183
.recruitmentInfo(recruitmentInfo)
186184
.status(RECRUITING)
187185
.build();

src/test/java/com/somemore/domains/recruitboard/service/validator/RecruitBoardValidatorTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,6 @@ public static RecruitBoard createRecruitBoard() {
168168
.content("내용")
169169
.recruitmentInfo(recruitmentInfo)
170170
.status(RECRUITING)
171-
.imgUrl("이미지 링크")
172171
.build();
173172
}
174173

0 commit comments

Comments
 (0)