From de350512c18193a80ecf63788b5f5310c4d98769 Mon Sep 17 00:00:00 2001 From: ahnyunki Date: Sun, 24 Mar 2024 23:46:38 +0900 Subject: [PATCH] =?UTF-8?q?test:=20API=20=ED=86=B5=ED=95=A9=20test=20?= =?UTF-8?q?=EC=B6=94=EC=83=81=20=ED=81=B4=EB=9E=98=EC=8A=A4=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1=20=EB=B0=8F=20API=20=EB=B3=80=EA=B2=BD=EC=9C=BC?= =?UTF-8?q?=EB=A1=9C=20=EC=9D=B8=ED=95=B4=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20(#29)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/talkroom/TalkRoomController.java | 12 +- .../application/talkroom/TalkRoomService.java | 23 +- .../talkroom/response/TalkRoomResponse.java | 8 +- .../jisungin/domain/talkroom/TalkRoom.java | 7 +- .../com/jisungin/ControllerTestSupport.java | 34 ++ .../java/com/jisungin/ServiceTestSupport.java | 7 + .../api/comment/CommentControllerTest.java | 21 +- .../api/talkroom/TalkRoomControllerTest.java | 370 +++--------------- .../comment/CommentServiceTest.java | 5 +- .../service/talkroom/TalkRoomServiceTest.java | 17 +- 10 files changed, 131 insertions(+), 373 deletions(-) create mode 100644 src/test/java/com/jisungin/ControllerTestSupport.java create mode 100644 src/test/java/com/jisungin/ServiceTestSupport.java diff --git a/src/main/java/com/jisungin/api/talkroom/TalkRoomController.java b/src/main/java/com/jisungin/api/talkroom/TalkRoomController.java index 7bdd92e..7839b81 100644 --- a/src/main/java/com/jisungin/api/talkroom/TalkRoomController.java +++ b/src/main/java/com/jisungin/api/talkroom/TalkRoomController.java @@ -1,6 +1,8 @@ package com.jisungin.api.talkroom; import com.jisungin.api.ApiResponse; +import com.jisungin.api.oauth.Auth; +import com.jisungin.api.oauth.AuthContext; import com.jisungin.api.talkroom.request.TalkRoomCreateRequest; import com.jisungin.api.talkroom.request.TalkRoomEditRequest; import com.jisungin.api.talkroom.request.TalkRoomSearchRequest; @@ -27,8 +29,9 @@ public class TalkRoomController { // TODO. 회원 도메인이 개발되면 변경 예정 @PostMapping("/talk-rooms") - public ApiResponse createTalkRoom(@Valid @RequestBody TalkRoomCreateRequest request) { - return ApiResponse.ok(talkRoomService.createTalkRoom(request.toServiceRequest(), "user@gmail.com")); + public ApiResponse createTalkRoom(@Valid @RequestBody TalkRoomCreateRequest request, @Auth + AuthContext authContext) { + return ApiResponse.ok(talkRoomService.createTalkRoom(request.toServiceRequest(), authContext.getUserId())); } @GetMapping("/talk-rooms") @@ -37,8 +40,9 @@ public ApiResponse> getTalkRooms(@ModelAttri } @PatchMapping("/talk-rooms") - public ApiResponse editTalkRoom(@Valid @RequestBody TalkRoomEditRequest request) { - return ApiResponse.ok(talkRoomService.editTalkRoom(request.toServiceRequest(), "user@gmail.com")); + public ApiResponse editTalkRoom(@Valid @RequestBody TalkRoomEditRequest request, + @Auth AuthContext authContext) { + return ApiResponse.ok(talkRoomService.editTalkRoom(request.toServiceRequest(), authContext.getUserId())); } } diff --git a/src/main/java/com/jisungin/application/talkroom/TalkRoomService.java b/src/main/java/com/jisungin/application/talkroom/TalkRoomService.java index 6879510..2c0d513 100644 --- a/src/main/java/com/jisungin/application/talkroom/TalkRoomService.java +++ b/src/main/java/com/jisungin/application/talkroom/TalkRoomService.java @@ -32,19 +32,15 @@ public class TalkRoomService { private final BookRepository bookRepository; private final UserRepository userRepository; - // TODO. 토큰 정보를 가져오는 기능을 구현하면 변경할 예정 @Transactional - public TalkRoomResponse createTalkRoom(TalkRoomCreateServiceRequest request, String userEmail) { -// User user = userRepository.findById(userId) -// .orElseThrow(() -> new BusinessException(ErrorCode.USER_NOT_FOUND)); - - User user = userRepository.findByName(userEmail) + public TalkRoomResponse createTalkRoom(TalkRoomCreateServiceRequest request, Long userId) { + User user = userRepository.findById(userId) .orElseThrow(() -> new BusinessException(ErrorCode.USER_NOT_FOUND)); Book book = bookRepository.findById(request.getBookIsbn()) .orElseThrow(() -> new BusinessException(ErrorCode.BOOK_NOT_FOUND)); - TalkRoom talkRoom = TalkRoom.create(request, book, user); + TalkRoom talkRoom = TalkRoom.create(request.getTitle(), request.getContent(), book, user); talkRoomRepository.save(talkRoom); List readingStatus = ReadingStatus.createReadingStatus(request.getReadingStatus()); @@ -52,7 +48,8 @@ public TalkRoomResponse createTalkRoom(TalkRoomCreateServiceRequest request, Str readingStatus.stream().map(status -> TalkRoomRole.roleCreate(talkRoom, status)) .forEach(talkRoomRoleRepository::save); - return TalkRoomResponse.of(user.getName(), talkRoom, readingStatus, book.getImageUrl(), book.getTitle()); + return TalkRoomResponse.of(user.getName(), talkRoom.getTitle(), talkRoom.getContent(), readingStatus, + book.getImageUrl(), book.getTitle()); } public PageResponse getTalkRooms(TalkRoomSearchServiceRequest search) { @@ -60,10 +57,10 @@ public PageResponse getTalkRooms(TalkRoomSearchServiceReq } @Transactional - public TalkRoomResponse editTalkRoom(TalkRoomEditServiceRequest request, String userEmail) { - User user = userRepository.findByName(userEmail) + public TalkRoomResponse editTalkRoom(TalkRoomEditServiceRequest request, Long userId) { + User user = userRepository.findById(userId) .orElseThrow(() -> new BusinessException(ErrorCode.USER_NOT_FOUND)); - + TalkRoom talkRoom = talkRoomRepository.findByIdWithUserAndBook(request.getId()); if (!talkRoom.isTalkRoomOwner(user.getId())) { @@ -79,8 +76,8 @@ public TalkRoomResponse editTalkRoom(TalkRoomEditServiceRequest request, String readingStatus.stream().map(status -> TalkRoomRole.roleCreate(talkRoom, status)) .forEach(talkRoomRoleRepository::save); - return TalkRoomResponse.of(user.getName(), talkRoom, readingStatus, talkRoom.getBook().getImageUrl(), - talkRoom.getBook().getTitle()); + return TalkRoomResponse.of(user.getName(), talkRoom.getTitle(), talkRoom.getContent(), readingStatus, + talkRoom.getBook().getImageUrl(), talkRoom.getBook().getTitle()); } } diff --git a/src/main/java/com/jisungin/application/talkroom/response/TalkRoomResponse.java b/src/main/java/com/jisungin/application/talkroom/response/TalkRoomResponse.java index 5354170..721bc2d 100644 --- a/src/main/java/com/jisungin/application/talkroom/response/TalkRoomResponse.java +++ b/src/main/java/com/jisungin/application/talkroom/response/TalkRoomResponse.java @@ -1,7 +1,6 @@ package com.jisungin.application.talkroom.response; import com.jisungin.domain.ReadingStatus; -import com.jisungin.domain.talkroom.TalkRoom; import com.querydsl.core.annotations.QueryProjection; import java.util.List; import lombok.Builder; @@ -31,12 +30,13 @@ public TalkRoomResponse(String userName, String title, String content, String bo this.bookImage = bookImage; } - public static TalkRoomResponse of(String userName, TalkRoom talkRoom, List readingStatuses, + public static TalkRoomResponse of(String userName, String title, String content, + List readingStatuses, String bookImage, String bookName) { return TalkRoomResponse.builder() .userName(userName) - .title(talkRoom.getTitle()) - .content(talkRoom.getContent()) + .title(title) + .content(content) .bookName(bookName) .readingStatuses(readingStatuses) .bookImage(bookImage) diff --git a/src/main/java/com/jisungin/domain/talkroom/TalkRoom.java b/src/main/java/com/jisungin/domain/talkroom/TalkRoom.java index 5881be9..54392ba 100644 --- a/src/main/java/com/jisungin/domain/talkroom/TalkRoom.java +++ b/src/main/java/com/jisungin/domain/talkroom/TalkRoom.java @@ -1,6 +1,5 @@ package com.jisungin.domain.talkroom; -import com.jisungin.application.talkroom.request.TalkRoomCreateServiceRequest; import com.jisungin.application.talkroom.request.TalkRoomEditServiceRequest; import com.jisungin.domain.BaseEntity; import com.jisungin.domain.book.Book; @@ -52,12 +51,12 @@ private TalkRoom(Book book, User user, String title, String content) { this.content = content; } - public static TalkRoom create(TalkRoomCreateServiceRequest request, Book book, User user) { + public static TalkRoom create(String title, String content, Book book, User user) { return TalkRoom.builder() .book(book) .user(user) - .title(request.getTitle()) - .content(request.getContent()) + .title(title) + .content(content) .build(); } diff --git a/src/test/java/com/jisungin/ControllerTestSupport.java b/src/test/java/com/jisungin/ControllerTestSupport.java new file mode 100644 index 0000000..4666d3b --- /dev/null +++ b/src/test/java/com/jisungin/ControllerTestSupport.java @@ -0,0 +1,34 @@ +package com.jisungin; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.jisungin.api.comment.CommentController; +import com.jisungin.api.oauth.AuthContext; +import com.jisungin.api.talkroom.TalkRoomController; +import com.jisungin.application.comment.CommentService; +import com.jisungin.application.talkroom.TalkRoomService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.test.web.servlet.MockMvc; + +@WebMvcTest(controllers = { + TalkRoomController.class, + CommentController.class +}) +public abstract class ControllerTestSupport { + + @Autowired + protected MockMvc mockMvc; + + @Autowired + protected ObjectMapper objectMapper; + + @MockBean + protected TalkRoomService talkRoomService; + + @MockBean + protected CommentService commentService; + + @MockBean + protected AuthContext authContext; +} diff --git a/src/test/java/com/jisungin/ServiceTestSupport.java b/src/test/java/com/jisungin/ServiceTestSupport.java new file mode 100644 index 0000000..2cd047e --- /dev/null +++ b/src/test/java/com/jisungin/ServiceTestSupport.java @@ -0,0 +1,7 @@ +package com.jisungin; + +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +public abstract class ServiceTestSupport { +} diff --git a/src/test/java/com/jisungin/api/comment/CommentControllerTest.java b/src/test/java/com/jisungin/api/comment/CommentControllerTest.java index 8eb1a31..f7d0252 100644 --- a/src/test/java/com/jisungin/api/comment/CommentControllerTest.java +++ b/src/test/java/com/jisungin/api/comment/CommentControllerTest.java @@ -6,29 +6,12 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; -import com.fasterxml.jackson.databind.ObjectMapper; +import com.jisungin.ControllerTestSupport; import com.jisungin.api.comment.request.CommentCreateRequest; -import com.jisungin.application.comment.CommentService; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.mock.mockito.MockBean; -import org.springframework.test.web.servlet.MockMvc; -@SpringBootTest -@AutoConfigureMockMvc -class CommentControllerTest { - - @MockBean - CommentService commentService; - - @Autowired - MockMvc mockMvc; - - @Autowired - ObjectMapper objectMapper; +class CommentControllerTest extends ControllerTestSupport { @Test @DisplayName("유저가 토크방에 자신의 의견을 작성한다.") diff --git a/src/test/java/com/jisungin/api/talkroom/TalkRoomControllerTest.java b/src/test/java/com/jisungin/api/talkroom/TalkRoomControllerTest.java index 0d01f4d..ed09284 100644 --- a/src/test/java/com/jisungin/api/talkroom/TalkRoomControllerTest.java +++ b/src/test/java/com/jisungin/api/talkroom/TalkRoomControllerTest.java @@ -8,81 +8,26 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; -import com.fasterxml.jackson.databind.ObjectMapper; +import com.jisungin.ControllerTestSupport; import com.jisungin.application.talkroom.request.TalkRoomCreateServiceRequest; import com.jisungin.application.talkroom.request.TalkRoomEditServiceRequest; -import com.jisungin.application.talkroom.request.TalkRoomSearchServiceRequest; -import com.jisungin.domain.ReadingStatus; -import com.jisungin.domain.book.Book; -import com.jisungin.domain.book.repository.BookRepository; -import com.jisungin.domain.oauth.OauthId; -import com.jisungin.domain.oauth.OauthType; -import com.jisungin.domain.talkroom.TalkRoom; -import com.jisungin.domain.talkroom.TalkRoomRole; -import com.jisungin.domain.talkroom.repository.TalkRoomRepository; -import com.jisungin.domain.talkroom.repository.TalkRoomRoleRepository; -import com.jisungin.domain.user.User; -import com.jisungin.domain.user.repository.UserRepository; -import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; -import java.util.stream.IntStream; -import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.web.servlet.MockMvc; -@SpringBootTest -@AutoConfigureMockMvc -class TalkRoomControllerTest { - - @Autowired - ObjectMapper objectMapper; - - @Autowired - MockMvc mockMvc; - - @Autowired - TalkRoomRepository talkRoomRepository; - - @Autowired - TalkRoomRoleRepository talkRoomRoleRepository; - - @Autowired - BookRepository bookRepository; - - @Autowired - UserRepository userRepository; - - @AfterEach - void tearDown() { - talkRoomRoleRepository.deleteAllInBatch(); - talkRoomRepository.deleteAllInBatch(); - userRepository.deleteAllInBatch(); - bookRepository.deleteAllInBatch(); - } +class TalkRoomControllerTest extends ControllerTestSupport { @Test @DisplayName("유저가 책A에 대한 토크방을 생성한다.") void createTalkRoom() throws Exception { // given - User user = createUser(); - userRepository.save(user); - - Book book = createBook(); - bookRepository.save(book); - - List books = bookRepository.findAll(); - List readingStatus = new ArrayList<>(); readingStatus.add("읽는 중"); readingStatus.add("읽음"); TalkRoomCreateServiceRequest request = TalkRoomCreateServiceRequest.builder() - .bookIsbn(books.get(0).getIsbn()) + .bookIsbn("111111") .title("토크방") .content("내용") .readingStatus(readingStatus) @@ -104,16 +49,8 @@ void createTalkRoom() throws Exception { @DisplayName("토크방을 생성할 때 참가 조건은 1개 이상 체크해야 한다.") void createTalkRoomWithEmptyReadingStatus() throws Exception { // given - User user = createUser(); - userRepository.save(user); - - Book book = createBook(); - bookRepository.save(book); - - List books = bookRepository.findAll(); - TalkRoomCreateServiceRequest request = TalkRoomCreateServiceRequest.builder() - .bookIsbn(books.get(0).getIsbn()) + .bookIsbn("111111") .title("토크방") .content("내용") .readingStatus(null) @@ -134,24 +71,12 @@ void createTalkRoomWithEmptyReadingStatus() throws Exception { @DisplayName("토크방을 생성한 유저가 토크방의 제목을 수정한다.") void editTalkRoomContent() throws Exception { // given - User user = createUser(); - userRepository.save(user); - - Book book = createBook(); - bookRepository.save(book); - - TalkRoom talkRoom = createTalkRoom(book, user); - talkRoomRepository.save(talkRoom); - List talkRooms = talkRoomRepository.findAll(); - - createTalkRoomRole(talkRoom); - List readingStatus = new ArrayList<>(); readingStatus.add("읽는 중"); readingStatus.add("읽음"); TalkRoomEditServiceRequest request = TalkRoomEditServiceRequest.builder() - .id(talkRooms.get(0).getId()) + .id(1L) .title("토크방 수정") .content("내용 수정") .readingStatus(readingStatus) @@ -174,18 +99,6 @@ void editTalkRoomContent() throws Exception { @DisplayName("토크방을 생성한 유저가 토크방의 참가 조건을 수정한다.") void editTalkRoomReadingStatus() throws Exception { // given - User user = createUser(); - userRepository.save(user); - - Book book = createBook(); - bookRepository.save(book); - - TalkRoom talkRoom = createTalkRoom(book, user); - talkRoomRepository.save(talkRoom); - List talkRooms = talkRoomRepository.findAll(); - - createTalkRoomRole(talkRoom); - List readingStatus = new ArrayList<>(); readingStatus.add("읽는 중"); readingStatus.add("읽음"); @@ -193,7 +106,7 @@ void editTalkRoomReadingStatus() throws Exception { readingStatus.add("중단"); TalkRoomEditServiceRequest request = TalkRoomEditServiceRequest.builder() - .id(talkRooms.get(0).getId()) + .id(1L) .title("토크방") .content("내용") .readingStatus(readingStatus) @@ -215,20 +128,8 @@ void editTalkRoomReadingStatus() throws Exception { @DisplayName("토크방을 수정할 때 참가 조건은 1개 이상 체크해야 한다.") void editTalkRoomWithEmptyReadingStatus() throws Exception { // given - User user = createUser(); - userRepository.save(user); - - Book book = createBook(); - bookRepository.save(book); - - TalkRoom talkRoom = createTalkRoom(book, user); - talkRoomRepository.save(talkRoom); - List talkRooms = talkRoomRepository.findAll(); - - createTalkRoomRole(talkRoom); - TalkRoomEditServiceRequest request = TalkRoomEditServiceRequest.builder() - .id(talkRooms.get(0).getId()) + .id(1L) .title("토크방") .content("내용") .readingStatus(null) @@ -245,171 +146,8 @@ void editTalkRoomWithEmptyReadingStatus() throws Exception { } @Test - @DisplayName("토크방을 생성한 유저와 토크방을 수정하는 유저가 일치하지 않으면 예외가 발생한다.") - void editTalkRoomWithUsersMustMatch() throws Exception { - // given - User userA = createUser(); - userRepository.save(userA); - - Book book = createBook(); - bookRepository.save(book); - - User userB = User.builder() - .name("userB@gmail.com") - .oauthId( - OauthId.builder() - .oauthId("oauthId2") - .oauthType(OauthType.KAKAO) - .build() - ) - .profileImage("image") - .build(); - userRepository.save(userB); - - TalkRoom talkRoom = createTalkRoom(book, userB); - talkRoomRepository.save(talkRoom); - List talkRooms = talkRoomRepository.findAll(); - - createTalkRoomRole(talkRoom); - - List readingStatus = new ArrayList<>(); - readingStatus.add("읽는 중"); - readingStatus.add("읽음"); - readingStatus.add("잠시 멈춤"); - - TalkRoomEditServiceRequest request = TalkRoomEditServiceRequest.builder() - .id(talkRooms.get(0).getId()) - .title("토크방") - .content("내용") - .readingStatus(readingStatus) - .build(); - - // when // then - mockMvc.perform(patch("/v1/talk-rooms") - .content(objectMapper.writeValueAsString(request)) - .contentType(APPLICATION_JSON) - ) - .andDo(print()) - .andExpect(status().isBadRequest()) - .andExpect(jsonPath("$.code").value("400")) - .andExpect(jsonPath("$.message").value("권한이 없는 사용자입니다.")); - } - - @Test - @DisplayName("유저가 토크방 1페이지를 조회하면 최신순으로 10개의 토크방이 조회된다. 첫 번째 토크방의 이름은 토론방 102이다.") - void getTalkRooms() throws Exception { - // given - User user = createUser(); - userRepository.save(user); - - Book book = createBook(); - bookRepository.save(book); - - List talkRoom = IntStream.range(0, 103) - .mapToObj(i -> TalkRoom.builder() - .user(user) - .book(book) - .title("토론방 " + i) - .content("내용 " + i) - .build()) - .toList(); - - talkRoomRepository.saveAll(talkRoom); - - for (TalkRoom t : talkRoom) { - createTalkRoomRole(t); - } - - TalkRoomSearchServiceRequest search = TalkRoomSearchServiceRequest.builder() - .page(1) - .size(10) - .build(); - - // when // then - mockMvc.perform(get("/v1/talk-rooms?page=1&size=10&order=recent") - .contentType(APPLICATION_JSON) - ) - .andDo(print()) - .andExpect(status().isOk()) - .andExpect(jsonPath("$.code").value("200")) - .andExpect(jsonPath("$.status").value("OK")) - .andExpect(jsonPath("$.message").value("OK")) - .andExpect(jsonPath("$.data.queryResponse[0].title").value("토론방 102")) - .andExpect(jsonPath("$.data.queryResponse[0].content").value("내용 102")); - } - - @Test - @DisplayName("사용자가 토크방을 조회 했을 때 페이지를 -1 값을 보내면 첫 번째 페이지가 조회 되어야 한다. 첫 번째 토크방은 토론방 102이다.") + @DisplayName("사용자가 토크방을 조회 했을 때 페이지를 -1 값을 보내면 첫 번째 페이지가 조회 되어야 한다.") void getTalkRoomWithMinus() throws Exception { - // given - User user = createUser(); - userRepository.save(user); - - Book book = createBook(); - bookRepository.save(book); - - List talkRoom = IntStream.range(0, 103) - .mapToObj(i -> TalkRoom.builder() - .user(user) - .book(book) - .title("토론방 " + i) - .content("내용 " + i) - .build()) - .toList(); - - talkRoomRepository.saveAll(talkRoom); - - for (TalkRoom t : talkRoom) { - createTalkRoomRole(t); - } - - TalkRoomSearchServiceRequest search = TalkRoomSearchServiceRequest.builder() - .page(1) - .size(10) - .build(); - - // when // then - mockMvc.perform(get("/v1/talk-rooms?page=-1&size=10&order=recent") - .contentType(APPLICATION_JSON) - ) - .andDo(print()) - .andExpect(status().isOk()) - .andExpect(jsonPath("$.code").value("200")) - .andExpect(jsonPath("$.status").value("OK")) - .andExpect(jsonPath("$.message").value("OK")) - .andExpect(jsonPath("$.data.queryResponse[0].title").value("토론방 102")) - .andExpect(jsonPath("$.data.queryResponse[0].content").value("내용 102")); - } - - @Test - @DisplayName("사용자가 토크방을 조회 했을 때 페이지를 0 값을 보내면 첫 번째 페이지가 조회 되어야 한다. 첫 번째 토크방은 토론방 102이다.") - void getTalkRoomsWithZero() throws Exception { - // given - User user = createUser(); - userRepository.save(user); - - Book book = createBook(); - bookRepository.save(book); - - List talkRoom = IntStream.range(0, 103) - .mapToObj(i -> TalkRoom.builder() - .user(user) - .book(book) - .title("토론방 " + i) - .content("내용 " + i) - .build()) - .toList(); - - talkRoomRepository.saveAll(talkRoom); - - for (TalkRoom t : talkRoom) { - createTalkRoomRole(t); - } - - TalkRoomSearchServiceRequest search = TalkRoomSearchServiceRequest.builder() - .page(1) - .size(10) - .build(); // when // then mockMvc.perform(get("/v1/talk-rooms?page=-1&size=10&order=recent") @@ -419,9 +157,7 @@ void getTalkRoomsWithZero() throws Exception { .andExpect(status().isOk()) .andExpect(jsonPath("$.code").value("200")) .andExpect(jsonPath("$.status").value("OK")) - .andExpect(jsonPath("$.message").value("OK")) - .andExpect(jsonPath("$.data.queryResponse[0].title").value("토론방 102")) - .andExpect(jsonPath("$.data.queryResponse[0].content").value("내용 102")); + .andExpect(jsonPath("$.message").value("OK")); } @Test @@ -438,49 +174,49 @@ void getTalkRoomsEmpty() throws Exception { .andExpect(jsonPath("$.message").value("OK")); } - private void createTalkRoomRole(TalkRoom talkRoom) { - List request = new ArrayList<>(); - request.add("읽는 중"); - request.add("읽음"); - - List readingStatus = ReadingStatus.createReadingStatus(request); - - readingStatus.stream().map(status -> TalkRoomRole.roleCreate(talkRoom, status)) - .forEach(talkRoomRoleRepository::save); - } - - private static TalkRoom createTalkRoom(Book book, User user) { - return TalkRoom.builder() - .book(book) - .title("토크방") - .content("내용") - .user(user) - .build(); - } - - private static User createUser() { - return User.builder() - .name("user@gmail.com") - .profileImage("image") - .oauthId( - OauthId.builder() - .oauthId("oauthId") - .oauthType(OauthType.KAKAO) - .build() - ) - .build(); - } - - private static Book createBook() { - return Book.builder() - .title("제목") - .content("내용") - .authors("작가") - .isbn("11111") - .publisher("publisher") - .dateTime(LocalDateTime.now()) - .imageUrl("www") - .build(); - } +// private void createTalkRoomRole(TalkRoom talkRoom) { +// List request = new ArrayList<>(); +// request.add("읽는 중"); +// request.add("읽음"); +// +// List readingStatus = ReadingStatus.createReadingStatus(request); +// +// readingStatus.stream().map(status -> TalkRoomRole.roleCreate(talkRoom, status)) +// .forEach(talkRoomRoleRepository::save); +// } +// +// private static TalkRoom createTalkRoom(Book book, User user) { +// return TalkRoom.builder() +// .book(book) +// .title("토크방") +// .content("내용") +// .user(user) +// .build(); +// } +// +// private static User createUser() { +// return User.builder() +// .name("user@gmail.com") +// .profileImage("image") +// .oauthId( +// OauthId.builder() +// .oauthId("oauthId") +// .oauthType(OauthType.KAKAO) +// .build() +// ) +// .build(); +// } +// +// private static Book createBook() { +// return Book.builder() +// .title("제목") +// .content("내용") +// .authors("작가") +// .isbn("11111") +// .publisher("publisher") +// .dateTime(LocalDateTime.now()) +// .imageUrl("www") +// .build(); +// } } \ No newline at end of file diff --git a/src/test/java/com/jisungin/application/comment/CommentServiceTest.java b/src/test/java/com/jisungin/application/comment/CommentServiceTest.java index 410a27f..8a938b2 100644 --- a/src/test/java/com/jisungin/application/comment/CommentServiceTest.java +++ b/src/test/java/com/jisungin/application/comment/CommentServiceTest.java @@ -2,6 +2,7 @@ import static org.assertj.core.api.Assertions.assertThat; +import com.jisungin.ServiceTestSupport; import com.jisungin.application.comment.request.CommentCreateServiceRequest; import com.jisungin.application.comment.response.CommentResponse; import com.jisungin.domain.ReadingStatus; @@ -23,10 +24,8 @@ import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -@SpringBootTest -class CommentServiceTest { +class CommentServiceTest extends ServiceTestSupport { @Autowired TalkRoomRepository talkRoomRepository; diff --git a/src/test/java/com/jisungin/application/service/talkroom/TalkRoomServiceTest.java b/src/test/java/com/jisungin/application/service/talkroom/TalkRoomServiceTest.java index 5ae0ee9..c8bcccd 100644 --- a/src/test/java/com/jisungin/application/service/talkroom/TalkRoomServiceTest.java +++ b/src/test/java/com/jisungin/application/service/talkroom/TalkRoomServiceTest.java @@ -3,6 +3,7 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; +import com.jisungin.ServiceTestSupport; import com.jisungin.application.response.PageResponse; import com.jisungin.application.talkroom.TalkRoomService; import com.jisungin.application.talkroom.request.TalkRoomCreateServiceRequest; @@ -30,10 +31,8 @@ import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -@SpringBootTest -class TalkRoomServiceTest { +class TalkRoomServiceTest extends ServiceTestSupport { @Autowired TalkRoomRepository talkRoomRepository; @@ -82,7 +81,7 @@ void createTalkRoom() { .build(); // when - TalkRoomResponse response = talkRoomService.createTalkRoom(request, user.getName()); + TalkRoomResponse response = talkRoomService.createTalkRoom(request, user.getId()); // then List readingStatuses = response.getReadingStatuses(); @@ -113,7 +112,7 @@ void createTalkRoomWithNotReadingStatus() { .build(); // when // then - assertThatThrownBy(() -> talkRoomService.createTalkRoom(request, user.getName())) + assertThatThrownBy(() -> talkRoomService.createTalkRoom(request, user.getId())) .isInstanceOf(BusinessException.class) .hasMessage("참가 조건은 1개 이상이어야 합니다."); } @@ -147,7 +146,7 @@ void editTalkRoom() { .readingStatus(readingStatus) .build(); // when - TalkRoomResponse response = talkRoomService.editTalkRoom(request, user.getName()); + TalkRoomResponse response = talkRoomService.editTalkRoom(request, user.getId()); // then assertThat(response) @@ -185,7 +184,7 @@ void editTalkRoomWithNullContent() { .readingStatus(readingStatus) .build(); // when - TalkRoomResponse response = talkRoomService.editTalkRoom(request, user.getName()); + TalkRoomResponse response = talkRoomService.editTalkRoom(request, user.getId()); // then assertThat(response) @@ -224,7 +223,7 @@ void editTalkRoomReadingStatus() { .build(); // when - TalkRoomResponse response = talkRoomService.editTalkRoom(request, user.getName()); + TalkRoomResponse response = talkRoomService.editTalkRoom(request, user.getId()); // then List talkRoomRoles = talkRoomRoleRepository.findAll(); @@ -274,7 +273,7 @@ void editTalkRoomWithUsersMustMatch() { .readingStatus(readingStatus) .build(); // when // then - assertThatThrownBy(() -> talkRoomService.editTalkRoom(request, userB.getName())) + assertThatThrownBy(() -> talkRoomService.editTalkRoom(request, userB.getId())) .isInstanceOf(BusinessException.class) .hasMessage("권한이 없는 사용자입니다."); }