From 0a70c0274c1399808af26a794165401e5697cd8b Mon Sep 17 00:00:00 2001 From: choidongkuen Date: Fri, 22 Dec 2023 08:09:27 +0900 Subject: [PATCH 1/3] =?UTF-8?q?FEAT=20:=20Job=20enum=20=EC=83=81=EC=88=98?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80=20(#121)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/example/betteriter/global/constant/Job.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/example/betteriter/global/constant/Job.java b/src/main/java/com/example/betteriter/global/constant/Job.java index e213a39..ad8707f 100644 --- a/src/main/java/com/example/betteriter/global/constant/Job.java +++ b/src/main/java/com/example/betteriter/global/constant/Job.java @@ -8,10 +8,16 @@ @Getter @RequiredArgsConstructor public enum Job { - DEVELOPER("개발자"), + SW_DEVELOPER("SW 개발자"), + GAME_DEVELOPER("게임 개발자"), STUDENT("학생"), TEACHER("선생님"), - DESIGNER("디자이너"); + VIDEO_DESIGNER("영상 디자이너"), + VISUAL_DESIGNER("시각 디자이너"), + DATA_ANALYST("데이터 분석가"), + PLANNER("기획자"), + EDITOR("에디터"), + CEO("CEO"); private final String jobName; @JsonCreator From 335b0db459146c69f4142918a29ab009c71c7e7e Mon Sep 17 00:00:00 2001 From: choidongkuen Date: Fri, 22 Dec 2023 08:35:11 +0900 Subject: [PATCH 2/3] =?UTF-8?q?REFACTOR=20:=20=EA=B8=B0=EC=A1=B4=20?= =?UTF-8?q?=EB=A6=AC=EB=B7=B0=20=EC=83=81=EC=84=B8=20=EC=A1=B0=ED=9A=8C=20?= =?UTF-8?q?API=20=EB=A6=AC=ED=8C=A9=ED=86=A0=EB=A7=81=20(#121)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fo_domain/comment/domain/Comment.java | 91 +++++++++++++++++++ .../review/dto/ReviewDetailResponse.java | 20 ++-- .../review/service/ReviewService.java | 4 +- .../controller/ReviewControllerTest.java | 48 ++-------- 4 files changed, 115 insertions(+), 48 deletions(-) diff --git a/src/main/java/com/example/betteriter/fo_domain/comment/domain/Comment.java b/src/main/java/com/example/betteriter/fo_domain/comment/domain/Comment.java index b7b003f..ec3914e 100644 --- a/src/main/java/com/example/betteriter/fo_domain/comment/domain/Comment.java +++ b/src/main/java/com/example/betteriter/fo_domain/comment/domain/Comment.java @@ -13,6 +13,97 @@ import org.hibernate.annotations.ColumnDefault; import org.hibernate.annotations.Where; +import javax.persistence.*; +import com.example.betteriter.fo_domain.review.domain.Review; +import com.example.betteriter.fo_domain.user.domain.Users; +import com.example.betteriter.global.common.entity.BaseEntity; +import com.example.betteriter.global.constant.Status; +import lombok.AccessLevel; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.hibernate.annotations.ColumnDefault; +import org.hibernate.annotations.Where; + +import javax.persistence.*; +import com.example.betteriter.fo_domain.review.domain.Review; +import com.example.betteriter.fo_domain.user.domain.Users; +import com.example.betteriter.global.common.entity.BaseEntity; +import com.example.betteriter.global.constant.Status; +import lombok.AccessLevel; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.hibernate.annotations.ColumnDefault; +import org.hibernate.annotations.Where; + +import javax.persistence.*; +import com.example.betteriter.fo_domain.review.domain.Review; +import com.example.betteriter.fo_domain.user.domain.Users; +import com.example.betteriter.global.common.entity.BaseEntity; +import com.example.betteriter.global.constant.Status; +import lombok.AccessLevel; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.hibernate.annotations.ColumnDefault; +import org.hibernate.annotations.Where; + +import javax.persistence.*; +import com.example.betteriter.fo_domain.review.domain.Review; +import com.example.betteriter.fo_domain.user.domain.Users; +import com.example.betteriter.global.common.entity.BaseEntity; +import com.example.betteriter.global.constant.Status; +import lombok.AccessLevel; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.hibernate.annotations.ColumnDefault; +import org.hibernate.annotations.Where; + +import javax.persistence.*; +import com.example.betteriter.fo_domain.review.domain.Review; +import com.example.betteriter.fo_domain.user.domain.Users; +import com.example.betteriter.global.common.entity.BaseEntity; +import com.example.betteriter.global.constant.Status; +import lombok.AccessLevel; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.hibernate.annotations.ColumnDefault; +import org.hibernate.annotations.Where; + +import javax.persistence.*; +import com.example.betteriter.fo_domain.review.domain.Review; +import com.example.betteriter.fo_domain.user.domain.Users; +import com.example.betteriter.global.common.entity.BaseEntity; +import com.example.betteriter.global.constant.Status; +import lombok.AccessLevel; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.hibernate.annotations.ColumnDefault; +import org.hibernate.annotations.Where; + +import javax.persistence.*; +import com.example.betteriter.fo_domain.review.domain.Review; +import com.example.betteriter.fo_domain.user.domain.Users; +import com.example.betteriter.global.common.entity.BaseEntity; +import com.example.betteriter.global.constant.Status; +import lombok.AccessLevel; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.hibernate.annotations.ColumnDefault; +import org.hibernate.annotations.Where; + import javax.persistence.*; @Slf4j diff --git a/src/main/java/com/example/betteriter/fo_domain/review/dto/ReviewDetailResponse.java b/src/main/java/com/example/betteriter/fo_domain/review/dto/ReviewDetailResponse.java index b26002a..920bc54 100644 --- a/src/main/java/com/example/betteriter/fo_domain/review/dto/ReviewDetailResponse.java +++ b/src/main/java/com/example/betteriter/fo_domain/review/dto/ReviewDetailResponse.java @@ -44,12 +44,12 @@ public ReviewDetailResponse(GetReviewDetailResponseDto getReviewDetailResponseDt this.reviewCommentInfo = reviewCommentInfo; } - public static ReviewDetailResponse of(Review review, List relatedReviews) { + public static ReviewDetailResponse of(Review review, List relatedReviews, Users currentUser) { GetReviewDetailResponseDto reviewDetail = GetReviewDetailResponseDto.from(review); // 리뷰 상세 GetUserResponseDto writerInfo = GetUserResponseDto.from(review.getWriter()); // 리뷰 작성자 데이터 List getRelatedReviewResponseDto = GetRelatedReviewResponseDto.from(relatedReviews); // 연관 리뷰 데이터 ReviewLikeInfo reviewLikeInfo = ReviewLikeInfo.from(review); // 리뷰 좋아요 데이터 - ReviewCommentInfo reviewCommentInfo = ReviewCommentInfo.from(review); // 리뷰 댓글 데이터 + ReviewCommentInfo reviewCommentInfo = ReviewCommentInfo.from(review, currentUser); // 리뷰 댓글 데이터 return ReviewDetailResponse.builder() .getReviewDetailResponseDto(reviewDetail) @@ -163,6 +163,7 @@ public static ReviewLikeInfo from(Review review) { @Getter @NoArgsConstructor public static class ReviewCommentInfo { + @JsonProperty("reviewComments") private List reviewCommentResponses; private long reviewCommentCount; @@ -172,9 +173,9 @@ public ReviewCommentInfo(List reviewCommentResponses, lon this.reviewCommentCount = reviewCommentCount; } - public static ReviewCommentInfo from(Review review) { + public static ReviewCommentInfo from(Review review, Users currentUser) { return ReviewCommentInfo.builder() - .reviewCommentResponses(ReviewCommentResponse.from(review.getReviewComment())) + .reviewCommentResponses(ReviewCommentResponse.from(review.getReviewComment(),currentUser)) .reviewCommentCount(review.getReviewComment().size()) .build(); } @@ -186,25 +187,28 @@ public static class ReviewCommentResponse { private GetUserResponseForLikeAndComment reviewCommentUserInfo; private String comment; private LocalDate commentCreatedAt; + private boolean isMine; // 로그인한 유저의 댓글인지 여부 @Builder public ReviewCommentResponse(Long id, GetUserResponseForLikeAndComment reviewCommentUserInfo, - String comment, LocalDate commentCreatedAt + String comment, LocalDate commentCreatedAt, boolean isMine ) { this.id = id; this.reviewCommentUserInfo = reviewCommentUserInfo; this.comment = comment; this.commentCreatedAt = commentCreatedAt; + this.isMine = isMine; } - public static List from(List comments) { + public static List from(List comments, Users users) { return comments.stream() .map(c -> ReviewCommentResponse.builder() .id(c.getId()) .reviewCommentUserInfo(GetUserResponseForLikeAndComment.from(c.getUsers())) .comment(c.getComment()) - .commentCreatedAt(c.getCreatedAt().toLocalDate()).build() - ) + .commentCreatedAt(c.getCreatedAt().toLocalDate()) + .isMine(c.getUsers().getId().equals(users.getId())) + .build()) .collect(Collectors.toList()); } } diff --git a/src/main/java/com/example/betteriter/fo_domain/review/service/ReviewService.java b/src/main/java/com/example/betteriter/fo_domain/review/service/ReviewService.java index 1d78c98..45ce352 100644 --- a/src/main/java/com/example/betteriter/fo_domain/review/service/ReviewService.java +++ b/src/main/java/com/example/betteriter/fo_domain/review/service/ReviewService.java @@ -115,7 +115,7 @@ public ReviewDetailResponse getReviewDetail(Long reviewId) { = this.reviewRepository.findTop4ByProductNameOrderByScrapedCntPlusLikedCntDesc(review.getProductName()); if (relatedReviews.size() == 4) { - return ReviewDetailResponse.of(review, relatedReviews); + return ReviewDetailResponse.of(review, relatedReviews, getCurrentUser()); } int remain = 4 - relatedReviews.size(); // 3. 동일한 카테고리 중 좋아요 + 스크랩 순 정렬 조회 (나머지) @@ -125,7 +125,7 @@ public ReviewDetailResponse getReviewDetail(Long reviewId) { List totalRelatedReviews = Stream.concat(relatedReviews.stream(), restRelatedReviews.stream()) .collect(Collectors.toList()); - return ReviewDetailResponse.of(review, totalRelatedReviews); + return ReviewDetailResponse.of(review, totalRelatedReviews, getCurrentUser()); } /* 리뷰 좋아요 */ diff --git a/src/test/java/com/example/betteriter/fo_domain/review/controller/ReviewControllerTest.java b/src/test/java/com/example/betteriter/fo_domain/review/controller/ReviewControllerTest.java index 65400fe..91f2559 100644 --- a/src/test/java/com/example/betteriter/fo_domain/review/controller/ReviewControllerTest.java +++ b/src/test/java/com/example/betteriter/fo_domain/review/controller/ReviewControllerTest.java @@ -3,7 +3,6 @@ import com.example.betteriter.bo_domain.menufacturer.domain.Manufacturer; import com.example.betteriter.fo_domain.review.domain.Review; import com.example.betteriter.fo_domain.review.domain.ReviewImage; -import com.example.betteriter.fo_domain.review.domain.ReviewScrap; import com.example.betteriter.fo_domain.review.dto.*; import com.example.betteriter.fo_domain.review.dto.CreateReviewRequestDto.CreateReviewImageRequestDto; import com.example.betteriter.fo_domain.review.service.ReviewService; @@ -12,7 +11,6 @@ import com.example.betteriter.global.config.security.SecurityConfig; import com.example.betteriter.global.constant.Category; import com.example.betteriter.global.constant.Job; -import com.example.betteriter.global.constant.RoleType; import com.example.betteriter.global.filter.JwtAuthenticationFilter; import com.example.betteriter.global.util.JwtUtil; import com.example.betteriter.global.util.RedisUtil; @@ -39,7 +37,6 @@ import static org.mockito.Mockito.verify; import static org.springframework.http.MediaType.APPLICATION_JSON; import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.csrf; -import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.user; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print; @@ -68,7 +65,7 @@ private static Review createReview(long count) { Users users = Users.builder() .email("email") .roleType(ROLE_USER) - .usersDetail(UsersDetail.builder().nickName("nickname").job(Job.DEVELOPER).build()) + .usersDetail(UsersDetail.builder().nickName("nickname").job(Job.SW_DEVELOPER).build()) .build(); @@ -114,7 +111,7 @@ void getReviewsBySearchSuccessfulTest() throws Exception { .usersDetail(UsersDetail.builder() .nickName("nickName") .profileImage("profileImage") - .job(Job.DEVELOPER) + .job(Job.SW_DEVELOPER) .build()) .build(); @@ -161,7 +158,7 @@ void getReviewsBySearchFailureTest() throws Exception { .usersDetail(UsersDetail.builder() .nickName("nickName") .profileImage("profileImage") - .job(Job.DEVELOPER) + .job(Job.SW_DEVELOPER) .build()) .build(); @@ -241,7 +238,7 @@ void getReviewByProductNameSuccessfully() throws Exception { .usersDetail(UsersDetail.builder() .nickName("nickName") .profileImage("profileImage") - .job(Job.DEVELOPER) + .job(Job.SW_DEVELOPER) .build()) .build(); @@ -291,7 +288,7 @@ void getReviewByCategoryControllerTest() throws Exception { Users users = Users.builder() .email("email") .roleType(ROLE_USER) - .usersDetail(UsersDetail.builder().nickName("nickname").job(Job.DEVELOPER).build()) + .usersDetail(UsersDetail.builder().nickName("nickname").job(Job.SW_DEVELOPER).build()) .build(); Review review = Review.builder() @@ -344,7 +341,7 @@ void getReviewsBySearchTest() throws Exception { Users users = Users.builder() .email("email") .roleType(ROLE_USER) - .usersDetail(UsersDetail.builder().nickName("nickname").job(Job.DEVELOPER).build()) + .usersDetail(UsersDetail.builder().nickName("nickname").job(Job.SW_DEVELOPER).build()) .build(); Review review = Review.builder() @@ -394,7 +391,7 @@ void getReviewDetailControllerTest() throws Exception { Users users = Users.builder() .email("email") .roleType(ROLE_USER) - .usersDetail(UsersDetail.builder().nickName("nickname").job(Job.DEVELOPER).build()) + .usersDetail(UsersDetail.builder().nickName("nickname").job(Job.SW_DEVELOPER).build()) .build(); Review review = Review.builder() @@ -431,7 +428,7 @@ void getReviewDetailControllerTest() throws Exception { ReviewDetailResponse.GetUserResponseDto writerInfo = ReviewDetailResponse.GetUserResponseDto.builder() .id(1L) .nickName("nickName") - .job(Job.DEVELOPER) + .job(Job.SW_DEVELOPER) .profileImage("profileImage") .isExpert(true) .build(); @@ -445,7 +442,7 @@ void getReviewDetailControllerTest() throws Exception { ReviewDetailResponse.ReviewLikeInfo reviewLikeInfo = ReviewDetailResponse.ReviewLikeInfo.builder() .reviewLikeUserInfo(List.of(ReviewDetailResponse.GetUserResponseForLikeAndComment.builder() .nickName("nickName") - .job(Job.DEVELOPER) + .job(Job.SW_DEVELOPER) .profileImage("profileImage") .build())) .reviewLikedCount(2L) @@ -456,7 +453,7 @@ void getReviewDetailControllerTest() throws Exception { .reviewCommentResponses(List.of(ReviewDetailResponse.ReviewCommentInfo.ReviewCommentResponse.builder() .reviewCommentUserInfo(ReviewDetailResponse.GetUserResponseForLikeAndComment.builder() .nickName("nickName") - .job(Job.DEVELOPER) + .job(Job.SW_DEVELOPER) .profileImage("profileImage") .build()) .comment("comment") @@ -504,31 +501,6 @@ void reviewLikeControllerTest() throws Exception { .with(csrf())) .andDo(print()) .andExpect(status().isOk()); - } - - @Test - @WithMockUser - @DisplayName("리뷰 스크랩 컨트롤러 테스트를 진행한다.") - void reviewScrapControllerTest() throws Exception { - // given - // 스크랩 하는 리뷰 - Review review = createReview(1L); - - // 스크랩 하는 유저 - Users users = Users.builder() - .id(1L) - .email("email") - .roleType(ROLE_USER) - .build(); - - given(this.reviewService.reviewScrap(anyLong())) - .willReturn(ReviewScrap.builder().review(review).users(users).build()); - - // when & then - mockMvc.perform(post("/review/scrap/{reviewId}",1L).with(csrf())) - .andDo(print()) - .andExpect(status().isOk()) - .andExpect(jsonPath("$.isSuccess").value(true)); } } \ No newline at end of file From eac50333bb08c023a2a7f10e75e19ca3ee9377e2 Mon Sep 17 00:00:00 2001 From: choidongkuen Date: Fri, 22 Dec 2023 08:46:21 +0900 Subject: [PATCH 3/3] =?UTF-8?q?TEST=20:=20=EA=B8=B0=EC=A1=B4=20=EB=A6=AC?= =?UTF-8?q?=EB=B7=B0=20=EC=83=81=EC=84=B8=20=EC=A1=B0=ED=9A=8C=20API=20?= =?UTF-8?q?=EB=A6=AC=ED=8C=A9=ED=86=A0=EB=A7=81=EC=97=90=20=EB=8C=80?= =?UTF-8?q?=ED=95=9C=20=EC=BB=A8=ED=8A=B8=EB=A1=A4=EB=9F=AC=20=EB=8B=A8?= =?UTF-8?q?=EC=9C=84=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=BD=94=EB=93=9C=20?= =?UTF-8?q?=EC=9E=91=EC=84=B1=20=EB=B0=8F=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20?= =?UTF-8?q?(#121)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../review/dto/ReviewDetailResponse.java | 1 + .../controller/ReviewControllerTest.java | 101 ++++++++++++++++++ .../service/ReviewServiceIntegratedTest.java | 2 +- .../review/service/ReviewServiceTest.java | 4 +- .../user/service/UserServiceTest.java | 4 +- .../betteriter/global/DeserializerTest.java | 2 +- 6 files changed, 108 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/example/betteriter/fo_domain/review/dto/ReviewDetailResponse.java b/src/main/java/com/example/betteriter/fo_domain/review/dto/ReviewDetailResponse.java index 920bc54..4333c66 100644 --- a/src/main/java/com/example/betteriter/fo_domain/review/dto/ReviewDetailResponse.java +++ b/src/main/java/com/example/betteriter/fo_domain/review/dto/ReviewDetailResponse.java @@ -120,6 +120,7 @@ public GetUserResponseDto(Long id, String nickName, Job job, public static ReviewDetailResponse.GetUserResponseDto from(Users writer) { return ReviewDetailResponse.GetUserResponseDto.builder() + .id(writer.getId()) .nickName(writer.getUsersDetail().getNickName()) .job(writer.getUsersDetail().getJob()) .isExpert(writer.isExpert()) diff --git a/src/test/java/com/example/betteriter/fo_domain/review/controller/ReviewControllerTest.java b/src/test/java/com/example/betteriter/fo_domain/review/controller/ReviewControllerTest.java index 91f2559..32134ec 100644 --- a/src/test/java/com/example/betteriter/fo_domain/review/controller/ReviewControllerTest.java +++ b/src/test/java/com/example/betteriter/fo_domain/review/controller/ReviewControllerTest.java @@ -49,6 +49,7 @@ @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = RedisUtil.class), @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = JwtUtil.class)} ) +@WithMockUser class ReviewControllerTest { @Autowired @@ -503,4 +504,104 @@ void reviewLikeControllerTest() throws Exception { .andExpect(status().isOk()); } + + @Test + @DisplayName("리뷰 상세 조회 API 리팩토링에 대한 컨트롤러 테스트를 진행한다.") + void getReviewDetailTest() throws Exception { + // given + + Users users = Users.builder() + .id(1L) + .email("email") + .roleType(ROLE_USER) + .usersDetail(UsersDetail.builder().nickName("nickname").job(Job.SW_DEVELOPER).build()) + .build(); + + Review review = Review.builder() + .writer(users) + .category(PC) + .productName("productName") + .category(PC) + .price(10) + .storeName(1) + .status(ACTIVE) + .boughtAt(LocalDate.now()) + .starPoint(1) + .goodPoint("goodPoint") + .badPoint("badPoint") + .shortReview("short") + .build(); + + GetReviewDetailResponseDto getReviewDetailResponseDto = GetReviewDetailResponseDto.builder() + .id(1L) + .productName("productName") + .reviewSpecData(List.of("spec1", "spec2")) + .starPoint(2.0) + .goodPoint("goodPoint") + .badPoint("badPoint") + .shortReview("shortReview") + .manufacturer("삼성") + .storeName(1) + .boughtAt(LocalDate.of(2023, 12, 12)) + .createdAt(LocalDate.of(2023, 12, 22)) + .reviewImages(List.of(GetReviewImageResponseDto.builder().imgUrl("imageUrl").orderNum(1).build())) + .scrapedCount(2L) + .build(); + + ReviewDetailResponse.GetUserResponseDto writerInfo = ReviewDetailResponse.GetUserResponseDto.builder() + .id(1L) + .nickName("nickName") + .job(Job.SW_DEVELOPER) + .profileImage("profileImage") + .isExpert(true) + .build(); + + List getRelatedReviewResponseDtos + = List.of(ReviewDetailResponse.GetRelatedReviewResponseDto.builder().productName("productName") + .reviewImage("reviewImage") + .writerName("동근") + .isExpert(true).build()); + + ReviewDetailResponse.ReviewLikeInfo reviewLikeInfo = ReviewDetailResponse.ReviewLikeInfo.builder() + .reviewLikeUserInfo(List.of(ReviewDetailResponse.GetUserResponseForLikeAndComment.builder() + .nickName("nickName") + .job(Job.SW_DEVELOPER) + .profileImage("profileImage") + .build())) + .reviewLikedCount(2L) + .build(); + + ReviewDetailResponse.ReviewCommentInfo reviewCommentInfo = ReviewDetailResponse.ReviewCommentInfo.builder(). + reviewCommentCount(2L) + .reviewCommentResponses(List.of(ReviewDetailResponse.ReviewCommentInfo.ReviewCommentResponse.builder() + .reviewCommentUserInfo(ReviewDetailResponse.GetUserResponseForLikeAndComment.builder() + .nickName("nickName") + .job(Job.SW_DEVELOPER) + .profileImage("profileImage") + .build()) + .comment("comment") + .commentCreatedAt(LocalDate.now()) + .isMine(true) + .build())) + .build(); + + ReviewDetailResponse response = ReviewDetailResponse.builder() + .getReviewDetailResponseDto(getReviewDetailResponseDto) + .writerInfo(writerInfo) + .getRelatedReviewResponseDto(getRelatedReviewResponseDtos) + .reviewLikeInfo(reviewLikeInfo) + .reviewCommentInfo(reviewCommentInfo) + .build(); + + given(this.reviewService.getReviewDetail(anyLong())) + .willReturn(response); + // when & then + mockMvc.perform(get("/review/detail/{reviewId}", 1L)) + .andExpect(status().isOk()) + .andDo(print()) + .andExpect(jsonPath("$.isSuccess").value(true)) + .andExpect(jsonPath("$.result.writerInfo.id").value(1)) + .andExpect(jsonPath("$.result.relatedReviews[0].productName").value("productName")) + .andExpect(jsonPath("$.result.reviewCommentInfo.reviewComments[0].mine").value(true)); + } } \ No newline at end of file diff --git a/src/test/java/com/example/betteriter/fo_domain/review/service/ReviewServiceIntegratedTest.java b/src/test/java/com/example/betteriter/fo_domain/review/service/ReviewServiceIntegratedTest.java index 0ef1371..531e9d8 100644 --- a/src/test/java/com/example/betteriter/fo_domain/review/service/ReviewServiceIntegratedTest.java +++ b/src/test/java/com/example/betteriter/fo_domain/review/service/ReviewServiceIntegratedTest.java @@ -31,7 +31,7 @@ private static Review createReview(long count) { Users users = Users.builder() .usersDetail(UsersDetail.builder() .nickName("nickName") - .job(Job.DEVELOPER) + .job(Job.SW_DEVELOPER) .profileImage("profileImage") .build()) .build(); diff --git a/src/test/java/com/example/betteriter/fo_domain/review/service/ReviewServiceTest.java b/src/test/java/com/example/betteriter/fo_domain/review/service/ReviewServiceTest.java index 8e20c3c..5389324 100644 --- a/src/test/java/com/example/betteriter/fo_domain/review/service/ReviewServiceTest.java +++ b/src/test/java/com/example/betteriter/fo_domain/review/service/ReviewServiceTest.java @@ -77,7 +77,7 @@ private static Review createReview(long count) { Users users = Users.builder() .email("email") .roleType(ROLE_USER) - .usersDetail(UsersDetail.builder().nickName("nickname").job(Job.DEVELOPER).build()) + .usersDetail(UsersDetail.builder().nickName("nickname").job(Job.SW_DEVELOPER).build()) .build(); @@ -214,7 +214,7 @@ void getReviewByCategory() { .isExpert(true) .usersDetail(UsersDetail.builder() .nickName("nickname") - .job(Job.DEVELOPER).build()) + .job(Job.SW_DEVELOPER).build()) .build(); diff --git a/src/test/java/com/example/betteriter/fo_domain/user/service/UserServiceTest.java b/src/test/java/com/example/betteriter/fo_domain/user/service/UserServiceTest.java index 36a9bb7..81e8b87 100644 --- a/src/test/java/com/example/betteriter/fo_domain/user/service/UserServiceTest.java +++ b/src/test/java/com/example/betteriter/fo_domain/user/service/UserServiceTest.java @@ -79,7 +79,7 @@ void getUserInfoTest() { .roleType(RoleType.ROLE_USER) .isExpert(true) .usersDetail(UsersDetail.builder() - .job(Job.DESIGNER) + .job(Job.SW_DEVELOPER) .profileImage("profileImage") .build()) .build(); @@ -107,7 +107,7 @@ void withdrawUserTest() { .roleType(RoleType.ROLE_USER) .isExpert(true) .usersDetail(UsersDetail.builder() - .job(Job.DESIGNER) + .job(Job.SW_DEVELOPER) .profileImage("profileImage") .build()) .build(); diff --git a/src/test/java/com/example/betteriter/global/DeserializerTest.java b/src/test/java/com/example/betteriter/global/DeserializerTest.java index 04d03fc..19b2eec 100644 --- a/src/test/java/com/example/betteriter/global/DeserializerTest.java +++ b/src/test/java/com/example/betteriter/global/DeserializerTest.java @@ -116,7 +116,7 @@ void joinDtoSerializerTest() throws JsonProcessingException { .email("danaver12@daum.net") .password("1234") .nickName("nickname") - .job(Job.DESIGNER) + .job(Job.SW_DEVELOPER) .build(); String json = new ObjectMapper().writeValueAsString(joinDto);