From 3da4b50c97370972d2c8e1c4c65ff84f7d54c0fe Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Thu, 10 Jul 2025 23:21:26 +0900 Subject: [PATCH 1/5] =?UTF-8?q?refactor:=20=ED=95=A8=EC=88=98=EB=AA=85=20?= =?UTF-8?q?=ED=86=B5=EC=9D=BC=20wish=20->=20liked?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../siteuser/service/MyPageService.java | 2 +- .../controller/UnivApplyInfoController.java | 18 +++++++++--------- .../service/UnivApplyInfoLikeService.java | 6 +++--- .../siteuser/service/MyPageServiceTest.java | 2 +- .../service/UnivApplyInfoLikeServiceTest.java | 16 ++++++++-------- 5 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/example/solidconnection/siteuser/service/MyPageService.java b/src/main/java/com/example/solidconnection/siteuser/service/MyPageService.java index 03db85fbc..eb27b25f9 100644 --- a/src/main/java/com/example/solidconnection/siteuser/service/MyPageService.java +++ b/src/main/java/com/example/solidconnection/siteuser/service/MyPageService.java @@ -94,7 +94,7 @@ private boolean isDefaultProfileImage(String profileImageUrl) { * 관심 대학교 목록을 조회한다. * */ @Transactional(readOnly = true) - public List getWishUnivApplyInfo(SiteUser siteUser) { + public List getLikedUnivApplyInfos(SiteUser siteUser) { List univApplyInfos = likedUnivApplyInfoRepository.findUnivApplyInfosBySiteUserId(siteUser.getId()); return univApplyInfos.stream() diff --git a/src/main/java/com/example/solidconnection/university/controller/UnivApplyInfoController.java b/src/main/java/com/example/solidconnection/university/controller/UnivApplyInfoController.java index d39518e5d..01f7375f3 100644 --- a/src/main/java/com/example/solidconnection/university/controller/UnivApplyInfoController.java +++ b/src/main/java/com/example/solidconnection/university/controller/UnivApplyInfoController.java @@ -47,37 +47,37 @@ public ResponseEntity getUnivApplyInfoRecommend // todo: return 타입 UnivApplyInfoPreviewResponses 같이 객체로 묶어서 반환하는 것으로 변경 필요 @GetMapping("/like") - public ResponseEntity> getMyWishUnivApplyInfo( /* todo: wish 가 아니라 liked 로 변경 필요 - 코드 용어 통일 */ + public ResponseEntity> getLikedUnivApplyInfos( @AuthorizedUser SiteUser siteUser ) { - List wishUniversities = myPageService.getWishUnivApplyInfo(siteUser); - return ResponseEntity.ok(wishUniversities); + List likedUnivApplyInfos = myPageService.getLikedUnivApplyInfos(siteUser); + return ResponseEntity.ok(likedUnivApplyInfos); } @GetMapping("/{univ-apply-info-id}/like") - public ResponseEntity getIsLiked( + public ResponseEntity isUnivApplyInfoLiked( @AuthorizedUser SiteUser siteUser, @PathVariable("univ-apply-info-id") Long univApplyInfoId ) { - IsLikeResponse isLiked = univApplyInfoLikeService.getIsLiked(siteUser, univApplyInfoId); + IsLikeResponse isLiked = univApplyInfoLikeService.isUnivApplyInfoLiked(siteUser, univApplyInfoId); return ResponseEntity.ok(isLiked); } @PostMapping("/{univ-apply-info-id}/like") - public ResponseEntity addWishUnivApplyInfo( + public ResponseEntity addUnivApplyInfoLike( @AuthorizedUser SiteUser siteUser, @PathVariable("univ-apply-info-id") Long univApplyInfoId ) { - LikeResultResponse likeResultResponse = univApplyInfoLikeService.likeUnivApplyInfo(siteUser, univApplyInfoId); + LikeResultResponse likeResultResponse = univApplyInfoLikeService.addUnivApplyInfoLike(siteUser, univApplyInfoId); return ResponseEntity.ok(likeResultResponse); } @DeleteMapping("/{univ-apply-info-id}/like") - public ResponseEntity cancelWishUnivApplyInfo( + public ResponseEntity cancelUnivApplyInfoLike( @AuthorizedUser SiteUser siteUser, @PathVariable("univ-apply-info-id") Long univApplyInfoId ) { - LikeResultResponse likeResultResponse = univApplyInfoLikeService.cancelLikeUnivApplyInfo(siteUser, univApplyInfoId); + LikeResultResponse likeResultResponse = univApplyInfoLikeService.cancelUnivApplyInfoLike(siteUser, univApplyInfoId); return ResponseEntity.ok(likeResultResponse); } diff --git a/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoLikeService.java b/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoLikeService.java index 4aa70eac4..b5cfc4ffd 100644 --- a/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoLikeService.java +++ b/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoLikeService.java @@ -35,7 +35,7 @@ public class UnivApplyInfoLikeService { * 대학교를 '좋아요' 한다. * */ @Transactional - public LikeResultResponse likeUnivApplyInfo(SiteUser siteUser, Long univApplyInfoId) { + public LikeResultResponse addUnivApplyInfoLike(SiteUser siteUser, Long univApplyInfoId) { UnivApplyInfo univApplyInfo = univApplyInfoRepository.getUnivApplyInfoById(univApplyInfoId); Optional optionalLikedUnivApplyInfo = likedUnivApplyInfoRepository.findBySiteUserIdAndUnivApplyInfoId(siteUser.getId(), univApplyInfo.getId()); @@ -55,7 +55,7 @@ public LikeResultResponse likeUnivApplyInfo(SiteUser siteUser, Long univApplyInf * 대학교 '좋아요'를 취소한다. * */ @Transactional - public LikeResultResponse cancelLikeUnivApplyInfo(SiteUser siteUser, long univApplyInfoId) { + public LikeResultResponse cancelUnivApplyInfoLike(SiteUser siteUser, long univApplyInfoId) { UnivApplyInfo univApplyInfo = univApplyInfoRepository.getUnivApplyInfoById(univApplyInfoId); Optional optionalLikedUnivApplyInfo = likedUnivApplyInfoRepository.findBySiteUserIdAndUnivApplyInfoId(siteUser.getId(), univApplyInfo.getId()); @@ -71,7 +71,7 @@ public LikeResultResponse cancelLikeUnivApplyInfo(SiteUser siteUser, long univAp * '좋아요'한 대학교인지 확인한다. * */ @Transactional(readOnly = true) - public IsLikeResponse getIsLiked(SiteUser siteUser, Long univApplyInfoId) { + public IsLikeResponse isUnivApplyInfoLiked(SiteUser siteUser, Long univApplyInfoId) { UnivApplyInfo univApplyInfo = univApplyInfoRepository.getUnivApplyInfoById(univApplyInfoId); boolean isLike = likedUnivApplyInfoRepository.findBySiteUserIdAndUnivApplyInfoId(siteUser.getId(), univApplyInfo.getId()).isPresent(); return new IsLikeResponse(isLike); diff --git a/src/test/java/com/example/solidconnection/siteuser/service/MyPageServiceTest.java b/src/test/java/com/example/solidconnection/siteuser/service/MyPageServiceTest.java index 85fdfd4cf..8590a7860 100644 --- a/src/test/java/com/example/solidconnection/siteuser/service/MyPageServiceTest.java +++ b/src/test/java/com/example/solidconnection/siteuser/service/MyPageServiceTest.java @@ -97,7 +97,7 @@ void setUp() { int likedUnivApplyInfo = createLikedUnivApplyInfos(user); // when - List response = myPageService.getWishUnivApplyInfo(user); + List response = myPageService.getLikedUnivApplyInfos(user); // then assertThat(response).hasSize(likedUnivApplyInfo); diff --git a/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoLikeServiceTest.java b/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoLikeServiceTest.java index 8867639e5..97f0b32ad 100644 --- a/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoLikeServiceTest.java +++ b/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoLikeServiceTest.java @@ -56,7 +56,7 @@ class 대학_지원_정보_좋아요를_등록한다 { @Test void 성공적으로_좋아요를_등록한다() { // when - LikeResultResponse response = univApplyInfoLikeService.likeUnivApplyInfo(user, 괌대학_A_지원_정보.getId()); + LikeResultResponse response = univApplyInfoLikeService.addUnivApplyInfoLike(user, 괌대학_A_지원_정보.getId()); // then assertAll( @@ -73,7 +73,7 @@ class 대학_지원_정보_좋아요를_등록한다 { saveLikedUniversity(user, 괌대학_A_지원_정보); // when & then - assertThatCode(() -> univApplyInfoLikeService.likeUnivApplyInfo(user, 괌대학_A_지원_정보.getId())) + assertThatCode(() -> univApplyInfoLikeService.addUnivApplyInfoLike(user, 괌대학_A_지원_정보.getId())) .isInstanceOf(CustomException.class) .hasMessage(ALREADY_LIKED_UNIV_APPLY_INFO.getMessage()); } @@ -88,7 +88,7 @@ class 대학_지원_정보_좋아요를_취소한다 { saveLikedUniversity(user, 괌대학_A_지원_정보); // when - LikeResultResponse response = univApplyInfoLikeService.cancelLikeUnivApplyInfo(user, 괌대학_A_지원_정보.getId()); + LikeResultResponse response = univApplyInfoLikeService.cancelUnivApplyInfoLike(user, 괌대학_A_지원_정보.getId()); // then assertAll( @@ -102,7 +102,7 @@ class 대학_지원_정보_좋아요를_취소한다 { @Test void 좋아요하지_않았으면_예외_응답을_반환한다() { // when & then - assertThatCode(() -> univApplyInfoLikeService.cancelLikeUnivApplyInfo(user, 괌대학_A_지원_정보.getId())) + assertThatCode(() -> univApplyInfoLikeService.cancelUnivApplyInfoLike(user, 괌대학_A_지원_정보.getId())) .isInstanceOf(CustomException.class) .hasMessage(NOT_LIKED_UNIV_APPLY_INFO.getMessage()); } @@ -114,7 +114,7 @@ class 대학_지원_정보_좋아요를_취소한다 { Long invalidUnivApplyInfoId = 9999L; // when & then - assertThatCode(() -> univApplyInfoLikeService.likeUnivApplyInfo(user, invalidUnivApplyInfoId)) + assertThatCode(() -> univApplyInfoLikeService.addUnivApplyInfoLike(user, invalidUnivApplyInfoId)) .isInstanceOf(CustomException.class) .hasMessage(UNIV_APPLY_INFO_NOT_FOUND.getMessage()); } @@ -125,7 +125,7 @@ class 대학_지원_정보_좋아요를_취소한다 { saveLikedUniversity(user, 괌대학_A_지원_정보); // when - IsLikeResponse response = univApplyInfoLikeService.getIsLiked(user, 괌대학_A_지원_정보.getId()); + IsLikeResponse response = univApplyInfoLikeService.isUnivApplyInfoLiked(user, 괌대학_A_지원_정보.getId()); // then assertThat(response.isLike()).isTrue(); @@ -134,7 +134,7 @@ class 대학_지원_정보_좋아요를_취소한다 { @Test void 좋아요하지_않은_대학_지원_정보인지_확인한다() { // when - IsLikeResponse response = univApplyInfoLikeService.getIsLiked(user, 괌대학_A_지원_정보.getId()); + IsLikeResponse response = univApplyInfoLikeService.isUnivApplyInfoLiked(user, 괌대학_A_지원_정보.getId()); // then assertThat(response.isLike()).isFalse(); @@ -146,7 +146,7 @@ class 대학_지원_정보_좋아요를_취소한다 { Long invalidUnivApplyInfoId = 9999L; // when & then - assertThatCode(() -> univApplyInfoLikeService.getIsLiked(user, invalidUnivApplyInfoId)) + assertThatCode(() -> univApplyInfoLikeService.isUnivApplyInfoLiked(user, invalidUnivApplyInfoId)) .isInstanceOf(CustomException.class) .hasMessage(UNIV_APPLY_INFO_NOT_FOUND.getMessage()); } From 5db2fa6bf379a1401229a40a448ba7726508f3df Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Thu, 10 Jul 2025 23:29:00 +0900 Subject: [PATCH 2/5] =?UTF-8?q?refactor:=20=EB=8C=80=ED=95=99=EC=A7=80?= =?UTF-8?q?=EC=9B=90=EC=A0=95=EB=B3=B4=20=EC=A2=8B=EC=95=84=EC=9A=94=20?= =?UTF-8?q?=EC=8B=9C,=20200=EB=A7=8C=20=EB=B0=98=ED=99=98=ED=95=98?= =?UTF-8?q?=EB=8F=84=EB=A1=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 회의에서 논의된 내용대로 통일 --- .../controller/UnivApplyInfoController.java | 13 ++++----- .../service/UnivApplyInfoLikeService.java | 12 ++------ .../service/UnivApplyInfoLikeServiceTest.java | 28 ++++++------------- 3 files changed, 18 insertions(+), 35 deletions(-) diff --git a/src/main/java/com/example/solidconnection/university/controller/UnivApplyInfoController.java b/src/main/java/com/example/solidconnection/university/controller/UnivApplyInfoController.java index 01f7375f3..d45796f6f 100644 --- a/src/main/java/com/example/solidconnection/university/controller/UnivApplyInfoController.java +++ b/src/main/java/com/example/solidconnection/university/controller/UnivApplyInfoController.java @@ -5,7 +5,6 @@ import com.example.solidconnection.siteuser.service.MyPageService; import com.example.solidconnection.university.domain.LanguageTestType; import com.example.solidconnection.university.dto.IsLikeResponse; -import com.example.solidconnection.university.dto.LikeResultResponse; import com.example.solidconnection.university.dto.UnivApplyInfoDetailResponse; import com.example.solidconnection.university.dto.UnivApplyInfoPreviewResponse; import com.example.solidconnection.university.dto.UnivApplyInfoRecommendsResponse; @@ -64,21 +63,21 @@ public ResponseEntity isUnivApplyInfoLiked( } @PostMapping("/{univ-apply-info-id}/like") - public ResponseEntity addUnivApplyInfoLike( + public ResponseEntity addUnivApplyInfoLike( @AuthorizedUser SiteUser siteUser, @PathVariable("univ-apply-info-id") Long univApplyInfoId ) { - LikeResultResponse likeResultResponse = univApplyInfoLikeService.addUnivApplyInfoLike(siteUser, univApplyInfoId); - return ResponseEntity.ok(likeResultResponse); + univApplyInfoLikeService.addUnivApplyInfoLike(siteUser, univApplyInfoId); + return ResponseEntity.ok().build(); } @DeleteMapping("/{univ-apply-info-id}/like") - public ResponseEntity cancelUnivApplyInfoLike( + public ResponseEntity cancelUnivApplyInfoLike( @AuthorizedUser SiteUser siteUser, @PathVariable("univ-apply-info-id") Long univApplyInfoId ) { - LikeResultResponse likeResultResponse = univApplyInfoLikeService.cancelUnivApplyInfoLike(siteUser, univApplyInfoId); - return ResponseEntity.ok(likeResultResponse); + univApplyInfoLikeService.cancelUnivApplyInfoLike(siteUser, univApplyInfoId); + return ResponseEntity.ok().build(); } @GetMapping("/{univ-apply-info-id}") diff --git a/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoLikeService.java b/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoLikeService.java index b5cfc4ffd..599dc2f68 100644 --- a/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoLikeService.java +++ b/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoLikeService.java @@ -2,11 +2,10 @@ import com.example.solidconnection.common.exception.CustomException; import com.example.solidconnection.siteuser.domain.SiteUser; -import com.example.solidconnection.university.repository.LikedUnivApplyInfoRepository; import com.example.solidconnection.university.domain.LikedUnivApplyInfo; import com.example.solidconnection.university.domain.UnivApplyInfo; import com.example.solidconnection.university.dto.IsLikeResponse; -import com.example.solidconnection.university.dto.LikeResultResponse; +import com.example.solidconnection.university.repository.LikedUnivApplyInfoRepository; import com.example.solidconnection.university.repository.UnivApplyInfoRepository; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Value; @@ -22,9 +21,6 @@ @Service public class UnivApplyInfoLikeService { - public static final String LIKE_SUCCESS_MESSAGE = "LIKE_SUCCESS"; - public static final String LIKE_CANCELED_MESSAGE = "LIKE_CANCELED"; - private final UnivApplyInfoRepository univApplyInfoRepository; private final LikedUnivApplyInfoRepository likedUnivApplyInfoRepository; @@ -35,7 +31,7 @@ public class UnivApplyInfoLikeService { * 대학교를 '좋아요' 한다. * */ @Transactional - public LikeResultResponse addUnivApplyInfoLike(SiteUser siteUser, Long univApplyInfoId) { + public void addUnivApplyInfoLike(SiteUser siteUser, Long univApplyInfoId) { UnivApplyInfo univApplyInfo = univApplyInfoRepository.getUnivApplyInfoById(univApplyInfoId); Optional optionalLikedUnivApplyInfo = likedUnivApplyInfoRepository.findBySiteUserIdAndUnivApplyInfoId(siteUser.getId(), univApplyInfo.getId()); @@ -48,14 +44,13 @@ public LikeResultResponse addUnivApplyInfoLike(SiteUser siteUser, Long univApply .siteUserId(siteUser.getId()) .build(); likedUnivApplyInfoRepository.save(likedUnivApplyInfo); - return new LikeResultResponse(LIKE_SUCCESS_MESSAGE); } /* * 대학교 '좋아요'를 취소한다. * */ @Transactional - public LikeResultResponse cancelUnivApplyInfoLike(SiteUser siteUser, long univApplyInfoId) { + public void cancelUnivApplyInfoLike(SiteUser siteUser, long univApplyInfoId) { UnivApplyInfo univApplyInfo = univApplyInfoRepository.getUnivApplyInfoById(univApplyInfoId); Optional optionalLikedUnivApplyInfo = likedUnivApplyInfoRepository.findBySiteUserIdAndUnivApplyInfoId(siteUser.getId(), univApplyInfo.getId()); @@ -64,7 +59,6 @@ public LikeResultResponse cancelUnivApplyInfoLike(SiteUser siteUser, long univAp } likedUnivApplyInfoRepository.delete(optionalLikedUnivApplyInfo.get()); - return new LikeResultResponse(LIKE_CANCELED_MESSAGE); } /* diff --git a/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoLikeServiceTest.java b/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoLikeServiceTest.java index 97f0b32ad..ce549ee46 100644 --- a/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoLikeServiceTest.java +++ b/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoLikeServiceTest.java @@ -3,13 +3,12 @@ import com.example.solidconnection.common.exception.CustomException; import com.example.solidconnection.siteuser.domain.SiteUser; import com.example.solidconnection.siteuser.fixture.SiteUserFixture; -import com.example.solidconnection.university.repository.LikedUnivApplyInfoRepository; import com.example.solidconnection.support.TestContainerSpringBootTest; import com.example.solidconnection.university.domain.LikedUnivApplyInfo; import com.example.solidconnection.university.domain.UnivApplyInfo; import com.example.solidconnection.university.dto.IsLikeResponse; -import com.example.solidconnection.university.dto.LikeResultResponse; import com.example.solidconnection.university.fixture.UnivApplyInfoFixture; +import com.example.solidconnection.university.repository.LikedUnivApplyInfoRepository; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; @@ -19,11 +18,8 @@ import static com.example.solidconnection.common.exception.ErrorCode.ALREADY_LIKED_UNIV_APPLY_INFO; import static com.example.solidconnection.common.exception.ErrorCode.NOT_LIKED_UNIV_APPLY_INFO; import static com.example.solidconnection.common.exception.ErrorCode.UNIV_APPLY_INFO_NOT_FOUND; -import static com.example.solidconnection.university.service.UnivApplyInfoLikeService.LIKE_CANCELED_MESSAGE; -import static com.example.solidconnection.university.service.UnivApplyInfoLikeService.LIKE_SUCCESS_MESSAGE; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.AssertionsForClassTypes.assertThatCode; -import static org.junit.jupiter.api.Assertions.assertAll; @TestContainerSpringBootTest @DisplayName("대학 지원 정보 좋아요 서비스 테스트") @@ -56,15 +52,12 @@ class 대학_지원_정보_좋아요를_등록한다 { @Test void 성공적으로_좋아요를_등록한다() { // when - LikeResultResponse response = univApplyInfoLikeService.addUnivApplyInfoLike(user, 괌대학_A_지원_정보.getId()); + univApplyInfoLikeService.addUnivApplyInfoLike(user, 괌대학_A_지원_정보.getId()); // then - assertAll( - () -> assertThat(response.result()).isEqualTo(LIKE_SUCCESS_MESSAGE), - () -> assertThat(likedUnivApplyInfoRepository.findBySiteUserIdAndUnivApplyInfoId( - user.getId(), 괌대학_A_지원_정보.getId() - )).isPresent() - ); + assertThat( + likedUnivApplyInfoRepository.findBySiteUserIdAndUnivApplyInfoId(user.getId(), 괌대학_A_지원_정보.getId()) + ).isPresent(); } @Test @@ -88,15 +81,12 @@ class 대학_지원_정보_좋아요를_취소한다 { saveLikedUniversity(user, 괌대학_A_지원_정보); // when - LikeResultResponse response = univApplyInfoLikeService.cancelUnivApplyInfoLike(user, 괌대학_A_지원_정보.getId()); + univApplyInfoLikeService.cancelUnivApplyInfoLike(user, 괌대학_A_지원_정보.getId()); // then - assertAll( - () -> assertThat(response.result()).isEqualTo(LIKE_CANCELED_MESSAGE), - () -> assertThat(likedUnivApplyInfoRepository.findBySiteUserIdAndUnivApplyInfoId( - user.getId(), 괌대학_A_지원_정보.getId() - )).isEmpty() - ); + assertThat( + likedUnivApplyInfoRepository.findBySiteUserIdAndUnivApplyInfoId(user.getId(), 괌대학_A_지원_정보.getId()) + ).isEmpty(); } @Test From 4148ecf3e90ce53d3e246e35bb6719a07786bc03 Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Thu, 10 Jul 2025 23:31:15 +0900 Subject: [PATCH 3/5] =?UTF-8?q?refactor:=20=EB=88=84=EB=9D=BD=EB=90=9C=20?= =?UTF-8?q?=EC=9A=A9=EC=96=B4=20=ED=86=B5=EC=9D=BC=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../university/service/UnivApplyInfoLikeServiceTest.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoLikeServiceTest.java b/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoLikeServiceTest.java index ce549ee46..6efeb2dbd 100644 --- a/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoLikeServiceTest.java +++ b/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoLikeServiceTest.java @@ -63,7 +63,7 @@ class 대학_지원_정보_좋아요를_등록한다 { @Test void 이미_좋아요했으면_예외_응답을_반환한다() { // given - saveLikedUniversity(user, 괌대학_A_지원_정보); + saveLikedUnivApplyInfo(user, 괌대학_A_지원_정보); // when & then assertThatCode(() -> univApplyInfoLikeService.addUnivApplyInfoLike(user, 괌대학_A_지원_정보.getId())) @@ -78,7 +78,7 @@ class 대학_지원_정보_좋아요를_취소한다 { @Test void 성공적으로_좋아요를_취소한다() { // given - saveLikedUniversity(user, 괌대학_A_지원_정보); + saveLikedUnivApplyInfo(user, 괌대학_A_지원_정보); // when univApplyInfoLikeService.cancelUnivApplyInfoLike(user, 괌대학_A_지원_정보.getId()); @@ -112,7 +112,7 @@ class 대학_지원_정보_좋아요를_취소한다 { @Test void 좋아요한_대학_지원_정보인지_확인한다() { // given - saveLikedUniversity(user, 괌대학_A_지원_정보); + saveLikedUnivApplyInfo(user, 괌대학_A_지원_정보); // when IsLikeResponse response = univApplyInfoLikeService.isUnivApplyInfoLiked(user, 괌대학_A_지원_정보.getId()); @@ -141,7 +141,7 @@ class 대학_지원_정보_좋아요를_취소한다 { .hasMessage(UNIV_APPLY_INFO_NOT_FOUND.getMessage()); } - private void saveLikedUniversity(SiteUser siteUser, UnivApplyInfo univApplyInfo) { + private void saveLikedUnivApplyInfo(SiteUser siteUser, UnivApplyInfo univApplyInfo) { LikedUnivApplyInfo likedUnivApplyInfo = LikedUnivApplyInfo.builder() .siteUserId(siteUser.getId()) .univApplyInfoId(univApplyInfo.getId()) From e7aab6b8cf54ca22b13faefa3f01ff34431de0ba Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Sun, 13 Jul 2025 16:17:03 +0900 Subject: [PATCH 4/5] =?UTF-8?q?refactor:=20=EC=A2=8B=EC=95=84=EC=9A=94?= =?UTF-8?q?=ED=95=9C=20=EB=8C=80=ED=95=99=EC=A7=80=EC=9B=90=EC=A0=95?= =?UTF-8?q?=EB=B3=B4=20=EB=AA=A9=EB=A1=9D=20=EC=A1=B0=ED=9A=8C=20=ED=95=A8?= =?UTF-8?q?=EC=88=98=20=EC=9D=B4=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - MyPageService에서 UnivApplyInfoLikeService 로 --- .../siteuser/service/MyPageService.java | 17 +---------------- .../controller/UnivApplyInfoController.java | 4 +--- .../service/UnivApplyInfoLikeService.java | 13 +++++++++++++ .../siteuser/service/MyPageServiceTest.java | 16 +--------------- .../service/UnivApplyInfoLikeServiceTest.java | 19 +++++++++++++++++++ 5 files changed, 35 insertions(+), 34 deletions(-) diff --git a/src/main/java/com/example/solidconnection/siteuser/service/MyPageService.java b/src/main/java/com/example/solidconnection/siteuser/service/MyPageService.java index eb27b25f9..ccabb0565 100644 --- a/src/main/java/com/example/solidconnection/siteuser/service/MyPageService.java +++ b/src/main/java/com/example/solidconnection/siteuser/service/MyPageService.java @@ -6,10 +6,8 @@ import com.example.solidconnection.s3.service.S3Service; import com.example.solidconnection.siteuser.domain.SiteUser; import com.example.solidconnection.siteuser.dto.MyPageResponse; -import com.example.solidconnection.university.repository.LikedUnivApplyInfoRepository; import com.example.solidconnection.siteuser.repository.SiteUserRepository; -import com.example.solidconnection.university.domain.UnivApplyInfo; -import com.example.solidconnection.university.dto.UnivApplyInfoPreviewResponse; +import com.example.solidconnection.university.repository.LikedUnivApplyInfoRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -17,7 +15,6 @@ import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; -import java.util.List; import static com.example.solidconnection.common.exception.ErrorCode.CAN_NOT_CHANGE_NICKNAME_YET; import static com.example.solidconnection.common.exception.ErrorCode.NICKNAME_ALREADY_EXISTED; @@ -89,16 +86,4 @@ private boolean isDefaultProfileImage(String profileImageUrl) { String prefix = "profile/"; return profileImageUrl == null || !profileImageUrl.startsWith(prefix); } - - /* - * 관심 대학교 목록을 조회한다. - * */ - @Transactional(readOnly = true) - public List getLikedUnivApplyInfos(SiteUser siteUser) { - List univApplyInfos = likedUnivApplyInfoRepository.findUnivApplyInfosBySiteUserId(siteUser.getId()); - - return univApplyInfos.stream() - .map(UnivApplyInfoPreviewResponse::from) - .toList(); - } } diff --git a/src/main/java/com/example/solidconnection/university/controller/UnivApplyInfoController.java b/src/main/java/com/example/solidconnection/university/controller/UnivApplyInfoController.java index d45796f6f..96f579ade 100644 --- a/src/main/java/com/example/solidconnection/university/controller/UnivApplyInfoController.java +++ b/src/main/java/com/example/solidconnection/university/controller/UnivApplyInfoController.java @@ -2,7 +2,6 @@ import com.example.solidconnection.common.resolver.AuthorizedUser; import com.example.solidconnection.siteuser.domain.SiteUser; -import com.example.solidconnection.siteuser.service.MyPageService; import com.example.solidconnection.university.domain.LanguageTestType; import com.example.solidconnection.university.dto.IsLikeResponse; import com.example.solidconnection.university.dto.UnivApplyInfoDetailResponse; @@ -31,7 +30,6 @@ public class UnivApplyInfoController { private final UnivApplyInfoQueryService univApplyInfoQueryService; private final UnivApplyInfoLikeService univApplyInfoLikeService; private final UnivApplyInfoRecommendService univApplyInfoRecommendService; - private final MyPageService myPageService; @GetMapping("/recommend") public ResponseEntity getUnivApplyInfoRecommends( @@ -49,7 +47,7 @@ public ResponseEntity getUnivApplyInfoRecommend public ResponseEntity> getLikedUnivApplyInfos( @AuthorizedUser SiteUser siteUser ) { - List likedUnivApplyInfos = myPageService.getLikedUnivApplyInfos(siteUser); + List likedUnivApplyInfos = univApplyInfoLikeService.getLikedUnivApplyInfos(siteUser); return ResponseEntity.ok(likedUnivApplyInfos); } diff --git a/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoLikeService.java b/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoLikeService.java index 599dc2f68..c817b5b4f 100644 --- a/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoLikeService.java +++ b/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoLikeService.java @@ -5,6 +5,7 @@ import com.example.solidconnection.university.domain.LikedUnivApplyInfo; import com.example.solidconnection.university.domain.UnivApplyInfo; import com.example.solidconnection.university.dto.IsLikeResponse; +import com.example.solidconnection.university.dto.UnivApplyInfoPreviewResponse; import com.example.solidconnection.university.repository.LikedUnivApplyInfoRepository; import com.example.solidconnection.university.repository.UnivApplyInfoRepository; import lombok.RequiredArgsConstructor; @@ -12,6 +13,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.List; import java.util.Optional; import static com.example.solidconnection.common.exception.ErrorCode.ALREADY_LIKED_UNIV_APPLY_INFO; @@ -27,6 +29,17 @@ public class UnivApplyInfoLikeService { @Value("${university.term}") public String term; + /* + * '좋아요'한 대학교 목록을 조회한다. + * */ + @Transactional(readOnly = true) + public List getLikedUnivApplyInfos(SiteUser siteUser) { + List univApplyInfos = likedUnivApplyInfoRepository.findUnivApplyInfosBySiteUserId(siteUser.getId()); + return univApplyInfos.stream() + .map(UnivApplyInfoPreviewResponse::from) + .toList(); + } + /* * 대학교를 '좋아요' 한다. * */ diff --git a/src/test/java/com/example/solidconnection/siteuser/service/MyPageServiceTest.java b/src/test/java/com/example/solidconnection/siteuser/service/MyPageServiceTest.java index 8590a7860..17697aaa1 100644 --- a/src/test/java/com/example/solidconnection/siteuser/service/MyPageServiceTest.java +++ b/src/test/java/com/example/solidconnection/siteuser/service/MyPageServiceTest.java @@ -10,12 +10,11 @@ import com.example.solidconnection.siteuser.dto.MyPageResponse; import com.example.solidconnection.siteuser.fixture.SiteUserFixture; import com.example.solidconnection.siteuser.fixture.SiteUserFixtureBuilder; -import com.example.solidconnection.university.repository.LikedUnivApplyInfoRepository; import com.example.solidconnection.siteuser.repository.SiteUserRepository; import com.example.solidconnection.support.TestContainerSpringBootTest; import com.example.solidconnection.university.domain.LikedUnivApplyInfo; -import com.example.solidconnection.university.dto.UnivApplyInfoPreviewResponse; import com.example.solidconnection.university.fixture.UnivApplyInfoFixture; +import com.example.solidconnection.university.repository.LikedUnivApplyInfoRepository; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; @@ -26,7 +25,6 @@ import org.springframework.mock.web.MockMultipartFile; import java.time.LocalDateTime; -import java.util.List; import static com.example.solidconnection.common.exception.ErrorCode.CAN_NOT_CHANGE_NICKNAME_YET; import static com.example.solidconnection.siteuser.service.MyPageService.MIN_DAYS_BETWEEN_NICKNAME_CHANGES; @@ -91,18 +89,6 @@ void setUp() { ); } - @Test - void 관심_대학_지원_정보_목록을_조회한다() { - // given - int likedUnivApplyInfo = createLikedUnivApplyInfos(user); - - // when - List response = myPageService.getLikedUnivApplyInfos(user); - - // then - assertThat(response).hasSize(likedUnivApplyInfo); - } - @Nested class 프로필_이미지_수정_테스트 { diff --git a/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoLikeServiceTest.java b/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoLikeServiceTest.java index 6efeb2dbd..365ccda9e 100644 --- a/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoLikeServiceTest.java +++ b/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoLikeServiceTest.java @@ -7,6 +7,7 @@ import com.example.solidconnection.university.domain.LikedUnivApplyInfo; import com.example.solidconnection.university.domain.UnivApplyInfo; import com.example.solidconnection.university.dto.IsLikeResponse; +import com.example.solidconnection.university.dto.UnivApplyInfoPreviewResponse; import com.example.solidconnection.university.fixture.UnivApplyInfoFixture; import com.example.solidconnection.university.repository.LikedUnivApplyInfoRepository; import org.junit.jupiter.api.BeforeEach; @@ -15,6 +16,8 @@ import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; +import java.util.List; + import static com.example.solidconnection.common.exception.ErrorCode.ALREADY_LIKED_UNIV_APPLY_INFO; import static com.example.solidconnection.common.exception.ErrorCode.NOT_LIKED_UNIV_APPLY_INFO; import static com.example.solidconnection.common.exception.ErrorCode.UNIV_APPLY_INFO_NOT_FOUND; @@ -46,6 +49,22 @@ void setUp() { 괌대학_A_지원_정보 = univApplyInfoFixture.괌대학_A_지원_정보(); } + @Test + void 관심_대학_지원_정보_목록을_조회한다() { + // given + UnivApplyInfo 메이지대학_지원_정보 = univApplyInfoFixture.메이지대학_지원_정보(); + UnivApplyInfo 그라츠대학_지원_정보 = univApplyInfoFixture.그라츠대학_지원_정보(); + saveLikedUnivApplyInfo(user, 메이지대학_지원_정보); + saveLikedUnivApplyInfo(user, 그라츠대학_지원_정보); + + // when + List response = univApplyInfoLikeService.getLikedUnivApplyInfos(user); + + // then + assertThat(response).extracting(UnivApplyInfoPreviewResponse::id) + .containsExactlyInAnyOrder(메이지대학_지원_정보.getId(), 그라츠대학_지원_정보.getId()); + } + @Nested class 대학_지원_정보_좋아요를_등록한다 { From 33775ca66df2d01fced3c236e4373ecf4b21ecff Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Sun, 13 Jul 2025 16:18:02 +0900 Subject: [PATCH 5/5] =?UTF-8?q?refactor:=20=EB=8C=80=ED=95=99=20=EC=A7=80?= =?UTF-8?q?=EC=9B=90=20=EC=A0=95=EB=B3=B4=20=EC=A2=8B=EC=95=84=EC=9A=94=20?= =?UTF-8?q?=EC=84=9C=EB=B9=84=EC=8A=A4=20=EC=9D=B4=EB=A6=84=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/UnivApplyInfoController.java | 12 +++++----- ...ce.java => LikedUnivApplyInfoService.java} | 2 +- ...ava => LikedUnivApplyInfoServiceTest.java} | 22 +++++++++---------- 3 files changed, 18 insertions(+), 18 deletions(-) rename src/main/java/com/example/solidconnection/university/service/{UnivApplyInfoLikeService.java => LikedUnivApplyInfoService.java} (98%) rename src/test/java/com/example/solidconnection/university/service/{UnivApplyInfoLikeServiceTest.java => LikedUnivApplyInfoServiceTest.java} (83%) diff --git a/src/main/java/com/example/solidconnection/university/controller/UnivApplyInfoController.java b/src/main/java/com/example/solidconnection/university/controller/UnivApplyInfoController.java index 96f579ade..d93e1524b 100644 --- a/src/main/java/com/example/solidconnection/university/controller/UnivApplyInfoController.java +++ b/src/main/java/com/example/solidconnection/university/controller/UnivApplyInfoController.java @@ -7,7 +7,7 @@ import com.example.solidconnection.university.dto.UnivApplyInfoDetailResponse; import com.example.solidconnection.university.dto.UnivApplyInfoPreviewResponse; import com.example.solidconnection.university.dto.UnivApplyInfoRecommendsResponse; -import com.example.solidconnection.university.service.UnivApplyInfoLikeService; +import com.example.solidconnection.university.service.LikedUnivApplyInfoService; import com.example.solidconnection.university.service.UnivApplyInfoQueryService; import com.example.solidconnection.university.service.UnivApplyInfoRecommendService; import lombok.RequiredArgsConstructor; @@ -28,7 +28,7 @@ public class UnivApplyInfoController { private final UnivApplyInfoQueryService univApplyInfoQueryService; - private final UnivApplyInfoLikeService univApplyInfoLikeService; + private final LikedUnivApplyInfoService likedUnivApplyInfoService; private final UnivApplyInfoRecommendService univApplyInfoRecommendService; @GetMapping("/recommend") @@ -47,7 +47,7 @@ public ResponseEntity getUnivApplyInfoRecommend public ResponseEntity> getLikedUnivApplyInfos( @AuthorizedUser SiteUser siteUser ) { - List likedUnivApplyInfos = univApplyInfoLikeService.getLikedUnivApplyInfos(siteUser); + List likedUnivApplyInfos = likedUnivApplyInfoService.getLikedUnivApplyInfos(siteUser); return ResponseEntity.ok(likedUnivApplyInfos); } @@ -56,7 +56,7 @@ public ResponseEntity isUnivApplyInfoLiked( @AuthorizedUser SiteUser siteUser, @PathVariable("univ-apply-info-id") Long univApplyInfoId ) { - IsLikeResponse isLiked = univApplyInfoLikeService.isUnivApplyInfoLiked(siteUser, univApplyInfoId); + IsLikeResponse isLiked = likedUnivApplyInfoService.isUnivApplyInfoLiked(siteUser, univApplyInfoId); return ResponseEntity.ok(isLiked); } @@ -65,7 +65,7 @@ public ResponseEntity addUnivApplyInfoLike( @AuthorizedUser SiteUser siteUser, @PathVariable("univ-apply-info-id") Long univApplyInfoId ) { - univApplyInfoLikeService.addUnivApplyInfoLike(siteUser, univApplyInfoId); + likedUnivApplyInfoService.addUnivApplyInfoLike(siteUser, univApplyInfoId); return ResponseEntity.ok().build(); } @@ -74,7 +74,7 @@ public ResponseEntity cancelUnivApplyInfoLike( @AuthorizedUser SiteUser siteUser, @PathVariable("univ-apply-info-id") Long univApplyInfoId ) { - univApplyInfoLikeService.cancelUnivApplyInfoLike(siteUser, univApplyInfoId); + likedUnivApplyInfoService.cancelUnivApplyInfoLike(siteUser, univApplyInfoId); return ResponseEntity.ok().build(); } diff --git a/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoLikeService.java b/src/main/java/com/example/solidconnection/university/service/LikedUnivApplyInfoService.java similarity index 98% rename from src/main/java/com/example/solidconnection/university/service/UnivApplyInfoLikeService.java rename to src/main/java/com/example/solidconnection/university/service/LikedUnivApplyInfoService.java index c817b5b4f..2ac9ceb3d 100644 --- a/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoLikeService.java +++ b/src/main/java/com/example/solidconnection/university/service/LikedUnivApplyInfoService.java @@ -21,7 +21,7 @@ @RequiredArgsConstructor @Service -public class UnivApplyInfoLikeService { +public class LikedUnivApplyInfoService { private final UnivApplyInfoRepository univApplyInfoRepository; private final LikedUnivApplyInfoRepository likedUnivApplyInfoRepository; diff --git a/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoLikeServiceTest.java b/src/test/java/com/example/solidconnection/university/service/LikedUnivApplyInfoServiceTest.java similarity index 83% rename from src/test/java/com/example/solidconnection/university/service/UnivApplyInfoLikeServiceTest.java rename to src/test/java/com/example/solidconnection/university/service/LikedUnivApplyInfoServiceTest.java index 365ccda9e..d8d4c0b9b 100644 --- a/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoLikeServiceTest.java +++ b/src/test/java/com/example/solidconnection/university/service/LikedUnivApplyInfoServiceTest.java @@ -26,10 +26,10 @@ @TestContainerSpringBootTest @DisplayName("대학 지원 정보 좋아요 서비스 테스트") -class UnivApplyInfoLikeServiceTest { +class LikedUnivApplyInfoServiceTest { @Autowired - private UnivApplyInfoLikeService univApplyInfoLikeService; + private LikedUnivApplyInfoService likedUnivApplyInfoService; @Autowired private LikedUnivApplyInfoRepository likedUnivApplyInfoRepository; @@ -58,7 +58,7 @@ void setUp() { saveLikedUnivApplyInfo(user, 그라츠대학_지원_정보); // when - List response = univApplyInfoLikeService.getLikedUnivApplyInfos(user); + List response = likedUnivApplyInfoService.getLikedUnivApplyInfos(user); // then assertThat(response).extracting(UnivApplyInfoPreviewResponse::id) @@ -71,7 +71,7 @@ class 대학_지원_정보_좋아요를_등록한다 { @Test void 성공적으로_좋아요를_등록한다() { // when - univApplyInfoLikeService.addUnivApplyInfoLike(user, 괌대학_A_지원_정보.getId()); + likedUnivApplyInfoService.addUnivApplyInfoLike(user, 괌대학_A_지원_정보.getId()); // then assertThat( @@ -85,7 +85,7 @@ class 대학_지원_정보_좋아요를_등록한다 { saveLikedUnivApplyInfo(user, 괌대학_A_지원_정보); // when & then - assertThatCode(() -> univApplyInfoLikeService.addUnivApplyInfoLike(user, 괌대학_A_지원_정보.getId())) + assertThatCode(() -> likedUnivApplyInfoService.addUnivApplyInfoLike(user, 괌대학_A_지원_정보.getId())) .isInstanceOf(CustomException.class) .hasMessage(ALREADY_LIKED_UNIV_APPLY_INFO.getMessage()); } @@ -100,7 +100,7 @@ class 대학_지원_정보_좋아요를_취소한다 { saveLikedUnivApplyInfo(user, 괌대학_A_지원_정보); // when - univApplyInfoLikeService.cancelUnivApplyInfoLike(user, 괌대학_A_지원_정보.getId()); + likedUnivApplyInfoService.cancelUnivApplyInfoLike(user, 괌대학_A_지원_정보.getId()); // then assertThat( @@ -111,7 +111,7 @@ class 대학_지원_정보_좋아요를_취소한다 { @Test void 좋아요하지_않았으면_예외_응답을_반환한다() { // when & then - assertThatCode(() -> univApplyInfoLikeService.cancelUnivApplyInfoLike(user, 괌대학_A_지원_정보.getId())) + assertThatCode(() -> likedUnivApplyInfoService.cancelUnivApplyInfoLike(user, 괌대학_A_지원_정보.getId())) .isInstanceOf(CustomException.class) .hasMessage(NOT_LIKED_UNIV_APPLY_INFO.getMessage()); } @@ -123,7 +123,7 @@ class 대학_지원_정보_좋아요를_취소한다 { Long invalidUnivApplyInfoId = 9999L; // when & then - assertThatCode(() -> univApplyInfoLikeService.addUnivApplyInfoLike(user, invalidUnivApplyInfoId)) + assertThatCode(() -> likedUnivApplyInfoService.addUnivApplyInfoLike(user, invalidUnivApplyInfoId)) .isInstanceOf(CustomException.class) .hasMessage(UNIV_APPLY_INFO_NOT_FOUND.getMessage()); } @@ -134,7 +134,7 @@ class 대학_지원_정보_좋아요를_취소한다 { saveLikedUnivApplyInfo(user, 괌대학_A_지원_정보); // when - IsLikeResponse response = univApplyInfoLikeService.isUnivApplyInfoLiked(user, 괌대학_A_지원_정보.getId()); + IsLikeResponse response = likedUnivApplyInfoService.isUnivApplyInfoLiked(user, 괌대학_A_지원_정보.getId()); // then assertThat(response.isLike()).isTrue(); @@ -143,7 +143,7 @@ class 대학_지원_정보_좋아요를_취소한다 { @Test void 좋아요하지_않은_대학_지원_정보인지_확인한다() { // when - IsLikeResponse response = univApplyInfoLikeService.isUnivApplyInfoLiked(user, 괌대학_A_지원_정보.getId()); + IsLikeResponse response = likedUnivApplyInfoService.isUnivApplyInfoLiked(user, 괌대학_A_지원_정보.getId()); // then assertThat(response.isLike()).isFalse(); @@ -155,7 +155,7 @@ class 대학_지원_정보_좋아요를_취소한다 { Long invalidUnivApplyInfoId = 9999L; // when & then - assertThatCode(() -> univApplyInfoLikeService.isUnivApplyInfoLiked(user, invalidUnivApplyInfoId)) + assertThatCode(() -> likedUnivApplyInfoService.isUnivApplyInfoLiked(user, invalidUnivApplyInfoId)) .isInstanceOf(CustomException.class) .hasMessage(UNIV_APPLY_INFO_NOT_FOUND.getMessage()); }