Skip to content

Commit

Permalink
BE-#112 test: Issue 생성 테스트 코드 변경 및 테스트 코드 변경으로 인한 리팩토링
Browse files Browse the repository at this point in the history
  • Loading branch information
ksundong committed Jul 13, 2020
1 parent e7e6ea2 commit 686c429
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 11 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
package kr.codesquad.issuetracker.controller;

import static kr.codesquad.issuetracker.common.constant.CommonConstant.HOST;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import kr.codesquad.issuetracker.controller.request.CommentRequest;
Expand All @@ -22,7 +26,6 @@
import kr.codesquad.issuetracker.service.UserService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
Expand Down Expand Up @@ -65,14 +68,16 @@ public IssueDetail showIssueDetail(@PathVariable Long issueNumber) {
}

@PostMapping("")
public ResponseEntity<JobResponse> createIssue(@RequestBody IssueCreateRequest issueCreateRequest,
public ResponseEntity<Void> createIssue(@RequestBody IssueCreateRequest issueCreateRequest,
HttpServletRequest request
) {
) throws URISyntaxException {
log.debug("요청 객체: {}", issueCreateRequest);
Long id = Long.parseLong(((UserDTO) request.getAttribute("user")).getId());
Long userId = Long.parseLong(((UserDTO) request.getAttribute("user")).getId());

URI location = new URI(
HOST + "/issues/" + issueService.createIssue(issueCreateRequest, userId));

return new ResponseEntity<>(JobResponse.of(issueService.createIssue(issueCreateRequest, id)),
HttpStatus.CREATED);
return ResponseEntity.created(location).build();
}

@PutMapping("{issueNumber}")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ public boolean updateIssuesOpenStatus(IssuesOpenStatusChangeRequest statusChange
return issueNumbers.equals(updatedIssueNumbers);
}

public boolean createIssue(IssueCreateRequest issueCreateRequest, Long id) {
public Long createIssue(IssueCreateRequest issueCreateRequest, Long id) {
LocalDateTime now = LocalDateTime.now();
User author = userRepository.find(id);
List<User> assignees = issueCreateRequest.getAssigneeUserIdList()
Expand Down Expand Up @@ -101,7 +101,7 @@ public boolean createIssue(IssueCreateRequest issueCreateRequest, Long id) {
.issue(newIssue)
.build());

return newIssue.getIssueNumber() != null;
return newIssue.getIssueNumber();
}

@Transactional(readOnly = true)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import static java.util.Arrays.asList;
import static java.util.Collections.singletonList;
import static kr.codesquad.issuetracker.common.constant.CommonConstant.HOST;
import static org.hamcrest.Matchers.hasSize;
import static org.hamcrest.Matchers.is;
import static org.mockito.ArgumentMatchers.any;
Expand All @@ -18,6 +19,7 @@
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put;
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.redirectedUrl;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

import com.fasterxml.jackson.databind.ObjectMapper;
Expand Down Expand Up @@ -411,18 +413,19 @@ void setUp() {
request.setLabelIdList(Arrays.asList(1L, 2L));
request.setAssigneeUserIdList(Arrays.asList("test"));

Long createdIssueId = 1L;
when(issueService.createIssue(any(IssueCreateRequest.class), any(Long.class)))
.thenReturn(true);
.thenReturn(createdIssueId);

// then
MockHttpServletRequestBuilder requestBuilder = post("/issues")
.contentType(MediaType.APPLICATION_JSON)
.characterEncoding("UTF-8")
.cookie(new Cookie("jwt", this.jwt)).content(asJsonString(request));
mockMvc.perform(requestBuilder)
.andDo(print())
.andExpect(status().isCreated())
.andExpect(jsonPath("$.success", is(true)))
.andExpect(jsonPath("$.message", is("성공")))
.andExpect(redirectedUrl(HOST + "/issues/" + createdIssueId.intValue()))
.andDo(document("{class-name}/{method-name}",
preprocessRequest(prettyPrint()),
preprocessResponse(prettyPrint()),
Expand Down

0 comments on commit 686c429

Please sign in to comment.