From c044ccc23e69475f6115b9cf8e15a1f18fe97dca Mon Sep 17 00:00:00 2001 From: Gyuhyeok99 <126947828+Gyuhyeok99@users.noreply.github.com> Date: Mon, 20 Jan 2025 13:05:20 +0900 Subject: [PATCH 01/12] =?UTF-8?q?refactor:=20=ED=86=B5=ED=95=A9=20?= =?UTF-8?q?=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EA=B5=AC=EC=A1=B0=20=EA=B0=9C?= =?UTF-8?q?=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - BaseIntegrationTest 추가로 테스트 설정 공통화 - TestDataSetUpHelper 도입으로 테스트 데이터 관리 개선 --- .../integration/BaseIntegrationTest.java | 20 +++++ .../integration/TestDataSetUpHelper.java} | 79 +++++++++++-------- 2 files changed, 65 insertions(+), 34 deletions(-) create mode 100644 src/test/java/com/example/solidconnection/support/integration/BaseIntegrationTest.java rename src/test/java/com/example/solidconnection/{university/service/UniversityDataSetUpIntegrationTest.java => support/integration/TestDataSetUpHelper.java} (90%) diff --git a/src/test/java/com/example/solidconnection/support/integration/BaseIntegrationTest.java b/src/test/java/com/example/solidconnection/support/integration/BaseIntegrationTest.java new file mode 100644 index 000000000..1f1c3d752 --- /dev/null +++ b/src/test/java/com/example/solidconnection/support/integration/BaseIntegrationTest.java @@ -0,0 +1,20 @@ +package com.example.solidconnection.support.integration; + +import com.example.solidconnection.support.DatabaseClearExtension; +import com.example.solidconnection.support.TestContainerSpringBootTest; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.extension.ExtendWith; +import org.springframework.beans.factory.annotation.Autowired; + +@TestContainerSpringBootTest +@ExtendWith(DatabaseClearExtension.class) +public abstract class BaseIntegrationTest { + + @Autowired + protected TestDataSetUpHelper testDataSetUpHelper; + + @BeforeEach + public void setUpBaseData() { + testDataSetUpHelper.setUpBasicData(); + } +} diff --git a/src/test/java/com/example/solidconnection/university/service/UniversityDataSetUpIntegrationTest.java b/src/test/java/com/example/solidconnection/support/integration/TestDataSetUpHelper.java similarity index 90% rename from src/test/java/com/example/solidconnection/university/service/UniversityDataSetUpIntegrationTest.java rename to src/test/java/com/example/solidconnection/support/integration/TestDataSetUpHelper.java index 91518a09e..06d866d03 100644 --- a/src/test/java/com/example/solidconnection/university/service/UniversityDataSetUpIntegrationTest.java +++ b/src/test/java/com/example/solidconnection/support/integration/TestDataSetUpHelper.java @@ -1,11 +1,9 @@ -package com.example.solidconnection.university.service; +package com.example.solidconnection.support.integration; import com.example.solidconnection.entity.Country; import com.example.solidconnection.entity.Region; import com.example.solidconnection.repositories.CountryRepository; import com.example.solidconnection.repositories.RegionRepository; -import com.example.solidconnection.support.DatabaseClearExtension; -import com.example.solidconnection.support.TestContainerSpringBootTest; import com.example.solidconnection.type.LanguageTestType; import com.example.solidconnection.university.domain.LanguageRequirement; import com.example.solidconnection.university.domain.University; @@ -13,21 +11,16 @@ import com.example.solidconnection.university.repository.LanguageRequirementRepository; import com.example.solidconnection.university.repository.UniversityInfoForApplyRepository; import com.example.solidconnection.university.repository.UniversityRepository; -import io.restassured.RestAssured; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.extension.ExtendWith; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.test.web.server.LocalServerPort; +import org.springframework.stereotype.Component; import java.util.HashSet; import static com.example.solidconnection.type.SemesterAvailableForDispatch.ONE_SEMESTER; import static com.example.solidconnection.type.TuitionFeeType.HOME_UNIVERSITY_PAYMENT; -@ExtendWith(DatabaseClearExtension.class) -@TestContainerSpringBootTest -abstract class UniversityDataSetUpIntegrationTest { +@Component +public class TestDataSetUpHelper { public static Region 영미권; public static Region 유럽; @@ -59,41 +52,52 @@ abstract class UniversityDataSetUpIntegrationTest { public static UniversityInfoForApply 린츠_카톨릭대학_지원_정보; public static UniversityInfoForApply 메이지대학_지원_정보; - @Value("${university.term}") - public String term; - - @LocalServerPort - private int port; - - @Autowired - private RegionRepository regionRepository; - - @Autowired - private CountryRepository countryRepository; - - @Autowired - private UniversityRepository universityRepository; - - @Autowired - private UniversityInfoForApplyRepository universityInfoForApplyRepository; - - @Autowired - private LanguageRequirementRepository languageRequirementRepository; + private final RegionRepository regionRepository; + private final CountryRepository countryRepository; + private final UniversityRepository universityRepository; + private final UniversityInfoForApplyRepository universityInfoForApplyRepository; + private final LanguageRequirementRepository languageRequirementRepository; + private final String term; + + public TestDataSetUpHelper( + RegionRepository regionRepository, + CountryRepository countryRepository, + UniversityRepository universityRepository, + UniversityInfoForApplyRepository universityInfoForApplyRepository, + LanguageRequirementRepository languageRequirementRepository, + @Value("${university.term}") String term + ) { + this.regionRepository = regionRepository; + this.countryRepository = countryRepository; + this.universityRepository = universityRepository; + this.universityInfoForApplyRepository = universityInfoForApplyRepository; + this.languageRequirementRepository = languageRequirementRepository; + this.term = term; + } - @BeforeEach public void setUpBasicData() { - RestAssured.port = port; + setupRegions(); + setupCountries(); + setupUniversities(); + setupUniversityInfos(); + setupLanguageRequirements(); + } + private void setupRegions() { 영미권 = regionRepository.save(new Region("AMERICAS", "영미권")); 유럽 = regionRepository.save(new Region("EUROPE", "유럽")); 아시아 = regionRepository.save(new Region("ASIA", "아시아")); + } + private void setupCountries() { 미국 = countryRepository.save(new Country("US", "미국", 영미권)); 캐나다 = countryRepository.save(new Country("CA", "캐나다", 영미권)); 덴마크 = countryRepository.save(new Country("DK", "덴마크", 유럽)); 오스트리아 = countryRepository.save(new Country("AT", "오스트리아", 유럽)); 일본 = countryRepository.save(new Country("JP", "일본", 아시아)); + } + private void setupUniversities() { 영미권_미국_괌대학 = universityRepository.save(new University( null, "괌대학", "University of Guam", "university_of_guam", "https://www.uog.edu/admissions/international-students", @@ -179,7 +183,9 @@ public void setUpBasicData() { "https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/meiji_university/1.png", null, 일본, 아시아 )); + } + private void setupUniversityInfos() { 괌대학_A_지원_정보 = universityInfoForApplyRepository.save(new UniversityInfoForApply( null, term, "괌대학(A형)", 1, HOME_UNIVERSITY_PAYMENT, ONE_SEMESTER, "1", "detailsForLanguage", "gpaRequirement", @@ -259,7 +265,9 @@ public void setUpBasicData() { "detailsForAccommodation", "detailsForEnglishCourse", "details", new HashSet<>(), 아시아_일본_메이지대학 )); + } + private void setupLanguageRequirements() { saveLanguageTestRequirement(괌대학_A_지원_정보, LanguageTestType.TOEFL_IBT, "80"); saveLanguageTestRequirement(괌대학_A_지원_정보, LanguageTestType.TOEIC, "800"); saveLanguageTestRequirement(괌대학_B_지원_정보, LanguageTestType.TOEFL_IBT, "70"); @@ -275,7 +283,10 @@ public void setUpBasicData() { } private void saveLanguageTestRequirement( - UniversityInfoForApply universityInfoForApply, LanguageTestType testType, String minScore) { + UniversityInfoForApply universityInfoForApply, + LanguageTestType testType, + String minScore + ) { LanguageRequirement languageRequirement = new LanguageRequirement( null, testType, From c64e2b60dca870beb81a5a9840a0e6facf1643a2 Mon Sep 17 00:00:00 2001 From: Gyuhyeok99 <126947828+Gyuhyeok99@users.noreply.github.com> Date: Mon, 20 Jan 2025 13:05:52 +0900 Subject: [PATCH 02/12] =?UTF-8?q?refactor:=20=EB=8C=80=ED=95=99=EA=B5=90?= =?UTF-8?q?=20=ED=86=B5=ED=95=A9=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20BaseInteg?= =?UTF-8?q?rationTest=EB=A5=BC=20=EC=82=AC=EC=9A=A9=ED=95=98=EB=8A=94=20?= =?UTF-8?q?=EA=B2=83=EC=9C=BC=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/UniversityLikeServiceTest.java | 4 +++- .../service/UniversityQueryServiceTest.java | 16 +++++++++++++++- .../service/UniversityRecommendServiceTest.java | 16 +++++++++++++--- 3 files changed, 31 insertions(+), 5 deletions(-) diff --git a/src/test/java/com/example/solidconnection/university/service/UniversityLikeServiceTest.java b/src/test/java/com/example/solidconnection/university/service/UniversityLikeServiceTest.java index 50adf6839..0913c40ab 100644 --- a/src/test/java/com/example/solidconnection/university/service/UniversityLikeServiceTest.java +++ b/src/test/java/com/example/solidconnection/university/service/UniversityLikeServiceTest.java @@ -4,6 +4,7 @@ import com.example.solidconnection.siteuser.domain.SiteUser; import com.example.solidconnection.siteuser.repository.LikedUniversityRepository; import com.example.solidconnection.siteuser.repository.SiteUserRepository; +import com.example.solidconnection.support.integration.BaseIntegrationTest; import com.example.solidconnection.type.Gender; import com.example.solidconnection.type.PreparationStatus; import com.example.solidconnection.type.Role; @@ -16,13 +17,14 @@ import org.springframework.beans.factory.annotation.Autowired; import static com.example.solidconnection.custom.exception.ErrorCode.UNIVERSITY_INFO_FOR_APPLY_NOT_FOUND; +import static com.example.solidconnection.support.integration.TestDataSetUpHelper.괌대학_A_지원_정보; import static com.example.solidconnection.university.service.UniversityLikeService.LIKE_CANCELED_MESSAGE; import static com.example.solidconnection.university.service.UniversityLikeService.LIKE_SUCCESS_MESSAGE; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.AssertionsForClassTypes.assertThatCode; @DisplayName("대학교 좋아요 서비스 테스트") -class UniversityLikeServiceTest extends UniversityDataSetUpIntegrationTest { +class UniversityLikeServiceTest extends BaseIntegrationTest { @Autowired private UniversityLikeService universityLikeService; diff --git a/src/test/java/com/example/solidconnection/university/service/UniversityQueryServiceTest.java b/src/test/java/com/example/solidconnection/university/service/UniversityQueryServiceTest.java index 54c235452..6e034a84d 100644 --- a/src/test/java/com/example/solidconnection/university/service/UniversityQueryServiceTest.java +++ b/src/test/java/com/example/solidconnection/university/service/UniversityQueryServiceTest.java @@ -1,6 +1,7 @@ package com.example.solidconnection.university.service; import com.example.solidconnection.custom.exception.CustomException; +import com.example.solidconnection.support.integration.BaseIntegrationTest; import com.example.solidconnection.type.LanguageTestType; import com.example.solidconnection.university.dto.UniversityDetailResponse; import com.example.solidconnection.university.dto.LanguageRequirementResponse; @@ -16,6 +17,19 @@ import java.util.List; +import static com.example.solidconnection.support.integration.TestDataSetUpHelper.괌대학_A_지원_정보; +import static com.example.solidconnection.support.integration.TestDataSetUpHelper.괌대학_B_지원_정보; +import static com.example.solidconnection.support.integration.TestDataSetUpHelper.그라츠공과대학_지원_정보; +import static com.example.solidconnection.support.integration.TestDataSetUpHelper.그라츠대학_지원_정보; +import static com.example.solidconnection.support.integration.TestDataSetUpHelper.네바다주립대학_라스베이거스_지원_정보; +import static com.example.solidconnection.support.integration.TestDataSetUpHelper.린츠_카톨릭대학_지원_정보; +import static com.example.solidconnection.support.integration.TestDataSetUpHelper.메모리얼대학_세인트존스_A_지원_정보; +import static com.example.solidconnection.support.integration.TestDataSetUpHelper.메이지대학_지원_정보; +import static com.example.solidconnection.support.integration.TestDataSetUpHelper.미국; +import static com.example.solidconnection.support.integration.TestDataSetUpHelper.서던덴마크대학교_지원_정보; +import static com.example.solidconnection.support.integration.TestDataSetUpHelper.영미권; +import static com.example.solidconnection.support.integration.TestDataSetUpHelper.영미권_미국_괌대학; +import static com.example.solidconnection.support.integration.TestDataSetUpHelper.코펜하겐IT대학_지원_정보; import static org.assertj.core.api.AssertionsForClassTypes.assertThatExceptionOfType; import static com.example.solidconnection.custom.exception.ErrorCode.UNIVERSITY_INFO_FOR_APPLY_NOT_FOUND; import static org.assertj.core.api.Assertions.assertThat; @@ -23,7 +37,7 @@ import static org.mockito.Mockito.times; @DisplayName("대학교 조회 서비스 테스트") -class UniversityQueryServiceTest extends UniversityDataSetUpIntegrationTest { +class UniversityQueryServiceTest extends BaseIntegrationTest { @Autowired private UniversityQueryService universityQueryService; diff --git a/src/test/java/com/example/solidconnection/university/service/UniversityRecommendServiceTest.java b/src/test/java/com/example/solidconnection/university/service/UniversityRecommendServiceTest.java index 1fee99033..1b3a0a068 100644 --- a/src/test/java/com/example/solidconnection/university/service/UniversityRecommendServiceTest.java +++ b/src/test/java/com/example/solidconnection/university/service/UniversityRecommendServiceTest.java @@ -6,6 +6,7 @@ import com.example.solidconnection.repositories.InterestedRegionRepository; import com.example.solidconnection.siteuser.domain.SiteUser; import com.example.solidconnection.siteuser.repository.SiteUserRepository; +import com.example.solidconnection.support.integration.BaseIntegrationTest; import com.example.solidconnection.type.Gender; import com.example.solidconnection.type.PreparationStatus; import com.example.solidconnection.type.Role; @@ -18,11 +19,19 @@ import java.util.List; +import static com.example.solidconnection.support.integration.TestDataSetUpHelper.괌대학_A_지원_정보; +import static com.example.solidconnection.support.integration.TestDataSetUpHelper.괌대학_B_지원_정보; +import static com.example.solidconnection.support.integration.TestDataSetUpHelper.네바다주립대학_라스베이거스_지원_정보; +import static com.example.solidconnection.support.integration.TestDataSetUpHelper.덴마크; +import static com.example.solidconnection.support.integration.TestDataSetUpHelper.메모리얼대학_세인트존스_A_지원_정보; +import static com.example.solidconnection.support.integration.TestDataSetUpHelper.서던덴마크대학교_지원_정보; +import static com.example.solidconnection.support.integration.TestDataSetUpHelper.영미권; +import static com.example.solidconnection.support.integration.TestDataSetUpHelper.코펜하겐IT대학_지원_정보; import static com.example.solidconnection.university.service.UniversityRecommendService.RECOMMEND_UNIVERSITY_NUM; import static org.assertj.core.api.Assertions.assertThat; @DisplayName("대학교 추천 서비스 테스트") -class UniversityRecommendServiceTest extends UniversityDataSetUpIntegrationTest { +class UniversityRecommendServiceTest extends BaseIntegrationTest { @Autowired private UniversityRecommendService universityRecommendService; @@ -41,6 +50,7 @@ class UniversityRecommendServiceTest extends UniversityDataSetUpIntegrationTest @BeforeEach void setUp() { + super.setUpBaseData(); generalRecommendUniversities.init(); } @@ -55,7 +65,7 @@ void setUp() { // then assertThat(response.recommendedUniversities()) - .hasSize(RECOMMEND_UNIVERSITY_NUM) + .hasSize(RECOMMEND_UNIVERSITY_NUM).usingRecursiveFieldByFieldElementComparatorIgnoringFields("id") .containsAll(List.of( UniversityInfoForApplyPreviewResponse.from(괌대학_A_지원_정보), UniversityInfoForApplyPreviewResponse.from(괌대학_B_지원_정보), @@ -94,7 +104,7 @@ void setUp() { // then assertThat(response.recommendedUniversities()) - .hasSize(RECOMMEND_UNIVERSITY_NUM) + .hasSize(RECOMMEND_UNIVERSITY_NUM).usingRecursiveFieldByFieldElementComparatorIgnoringFields("id") .containsExactlyInAnyOrder( UniversityInfoForApplyPreviewResponse.from(괌대학_A_지원_정보), UniversityInfoForApplyPreviewResponse.from(괌대학_B_지원_정보), From 6072b0ac37bda05796aae02ebb7eaac1f226ac46 Mon Sep 17 00:00:00 2001 From: Gyuhyeok99 <126947828+Gyuhyeok99@users.noreply.github.com> Date: Mon, 20 Jan 2025 13:58:45 +0900 Subject: [PATCH 03/12] =?UTF-8?q?test:=20=EB=A7=88=EC=9D=B4=ED=8E=98?= =?UTF-8?q?=EC=9D=B4=EC=A7=80=20=EC=A1=B0=ED=9A=8C=20=EA=B4=80=EB=A0=A8=20?= =?UTF-8?q?=ED=86=B5=ED=95=A9=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=BD=94?= =?UTF-8?q?=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../siteuser/service/SiteUserServiceTest.java | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 src/test/java/com/example/solidconnection/siteuser/service/SiteUserServiceTest.java diff --git a/src/test/java/com/example/solidconnection/siteuser/service/SiteUserServiceTest.java b/src/test/java/com/example/solidconnection/siteuser/service/SiteUserServiceTest.java new file mode 100644 index 000000000..bc424394f --- /dev/null +++ b/src/test/java/com/example/solidconnection/siteuser/service/SiteUserServiceTest.java @@ -0,0 +1,78 @@ +package com.example.solidconnection.siteuser.service; + +import com.example.solidconnection.siteuser.domain.SiteUser; +import com.example.solidconnection.siteuser.dto.MyPageResponse; +import com.example.solidconnection.siteuser.repository.LikedUniversityRepository; +import com.example.solidconnection.siteuser.repository.SiteUserRepository; +import com.example.solidconnection.support.integration.BaseIntegrationTest; +import com.example.solidconnection.type.Gender; +import com.example.solidconnection.type.PreparationStatus; +import com.example.solidconnection.type.Role; +import com.example.solidconnection.university.domain.LikedUniversity; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; + +import static com.example.solidconnection.support.integration.TestDataSetUpHelper.괌대학_A_지원_정보; +import static com.example.solidconnection.support.integration.TestDataSetUpHelper.메이지대학_지원_정보; +import static com.example.solidconnection.support.integration.TestDataSetUpHelper.코펜하겐IT대학_지원_정보; +import static org.assertj.core.api.Assertions.assertThat; + +@DisplayName("유저 서비스 테스트") +class SiteUserServiceTest extends BaseIntegrationTest { + + @Autowired + private SiteUserService siteUserService; + + @Autowired + private SiteUserRepository siteUserRepository; + + @Autowired + private LikedUniversityRepository likedUniversityRepository; + + @Test + void 마이페이지_정보를_조회한다() { + // given + SiteUser testUser = createSiteUser(); + int likedUniversityCount = createLikedUniversities(testUser); + + // when + MyPageResponse response = siteUserService.getMyPageInfo(testUser.getEmail()); + + // then + Assertions.assertAll( + () -> assertThat(response.nickname()).isEqualTo(testUser.getNickname()), + () -> assertThat(response.profileImageUrl()).isEqualTo(testUser.getProfileImageUrl()), + () -> assertThat(response.role()).isEqualTo(testUser.getRole()), + () -> assertThat(response.birth()).isEqualTo(testUser.getBirth()), + () -> assertThat(response.email()).isEqualTo(testUser.getEmail()), + () -> assertThat(response.likedPostCount()).isEqualTo(testUser.getPostLikeList().size()), + () -> assertThat(response.likedUniversityCount()).isEqualTo(likedUniversityCount) + ); + } + + private SiteUser createSiteUser() { + SiteUser siteUser = new SiteUser( + "test@example.com", + "nickname", + "profileImageUrl", + "1999-01-01", + PreparationStatus.CONSIDERING, + Role.MENTEE, + Gender.MALE + ); + return siteUserRepository.save(siteUser); + } + + private int createLikedUniversities(SiteUser testUser) { + LikedUniversity likedUniversity1 = new LikedUniversity(null, 괌대학_A_지원_정보, testUser); + LikedUniversity likedUniversity2 = new LikedUniversity(null, 메이지대학_지원_정보, testUser); + LikedUniversity likedUniversity3 = new LikedUniversity(null, 코펜하겐IT대학_지원_정보, testUser); + + likedUniversityRepository.save(likedUniversity1); + likedUniversityRepository.save(likedUniversity2); + likedUniversityRepository.save(likedUniversity3); + return likedUniversityRepository.countBySiteUser_Email(testUser.getEmail()); + } +} From 1d89154093964901e580c1fe89985e3b221268ae Mon Sep 17 00:00:00 2001 From: Gyuhyeok99 <126947828+Gyuhyeok99@users.noreply.github.com> Date: Mon, 20 Jan 2025 14:11:20 +0900 Subject: [PATCH 04/12] =?UTF-8?q?test:=20=EC=A0=95=EB=B3=B4=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=EC=9D=84=20=EC=9C=84=ED=95=9C=20=EB=A7=88=EC=9D=B4?= =?UTF-8?q?=ED=8E=98=EC=9D=B4=EC=A7=80=20=EC=A1=B0=ED=9A=8C=20=EA=B4=80?= =?UTF-8?q?=EB=A0=A8=20=ED=86=B5=ED=95=A9=ED=85=8C=EC=8A=A4=ED=8A=B8=20?= =?UTF-8?q?=EC=BD=94=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../siteuser/service/SiteUserServiceTest.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/test/java/com/example/solidconnection/siteuser/service/SiteUserServiceTest.java b/src/test/java/com/example/solidconnection/siteuser/service/SiteUserServiceTest.java index bc424394f..cd3464d39 100644 --- a/src/test/java/com/example/solidconnection/siteuser/service/SiteUserServiceTest.java +++ b/src/test/java/com/example/solidconnection/siteuser/service/SiteUserServiceTest.java @@ -2,6 +2,7 @@ import com.example.solidconnection.siteuser.domain.SiteUser; import com.example.solidconnection.siteuser.dto.MyPageResponse; +import com.example.solidconnection.siteuser.dto.MyPageUpdateResponse; import com.example.solidconnection.siteuser.repository.LikedUniversityRepository; import com.example.solidconnection.siteuser.repository.SiteUserRepository; import com.example.solidconnection.support.integration.BaseIntegrationTest; @@ -52,6 +53,21 @@ class SiteUserServiceTest extends BaseIntegrationTest { ); } + @Test + void 내_정보를_수정하기_위한_마이페이지_정보를_조회한다() { + // given + SiteUser testUser = createSiteUser(); + + // when + MyPageUpdateResponse response = siteUserService.getMyPageInfoToUpdate(testUser.getEmail()); + + // then + Assertions.assertAll( + () -> assertThat(response.nickname()).isEqualTo(testUser.getNickname()), + () -> assertThat(response.profileImageUrl()).isEqualTo(testUser.getProfileImageUrl()) + ); + } + private SiteUser createSiteUser() { SiteUser siteUser = new SiteUser( "test@example.com", From b64c62b3f05e5c0987e6cd89673e4eb80ecdc2c6 Mon Sep 17 00:00:00 2001 From: Gyuhyeok99 <126947828+Gyuhyeok99@users.noreply.github.com> Date: Mon, 20 Jan 2025 14:16:09 +0900 Subject: [PATCH 05/12] =?UTF-8?q?test:=20=EA=B4=80=EC=8B=AC=20=EB=8C=80?= =?UTF-8?q?=ED=95=99=EA=B5=90=20=EB=AA=A9=EB=A1=9D=20=EC=A1=B0=ED=9A=8C=20?= =?UTF-8?q?=EA=B4=80=EB=A0=A8=20=ED=86=B5=ED=95=A9=ED=85=8C=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=20=EC=BD=94=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../siteuser/service/SiteUserServiceTest.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/test/java/com/example/solidconnection/siteuser/service/SiteUserServiceTest.java b/src/test/java/com/example/solidconnection/siteuser/service/SiteUserServiceTest.java index cd3464d39..3959c1b68 100644 --- a/src/test/java/com/example/solidconnection/siteuser/service/SiteUserServiceTest.java +++ b/src/test/java/com/example/solidconnection/siteuser/service/SiteUserServiceTest.java @@ -10,11 +10,14 @@ import com.example.solidconnection.type.PreparationStatus; import com.example.solidconnection.type.Role; import com.example.solidconnection.university.domain.LikedUniversity; +import com.example.solidconnection.university.dto.UniversityInfoForApplyPreviewResponse; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; +import java.util.List; + import static com.example.solidconnection.support.integration.TestDataSetUpHelper.괌대학_A_지원_정보; import static com.example.solidconnection.support.integration.TestDataSetUpHelper.메이지대학_지원_정보; import static com.example.solidconnection.support.integration.TestDataSetUpHelper.코펜하겐IT대학_지원_정보; @@ -68,6 +71,26 @@ class SiteUserServiceTest extends BaseIntegrationTest { ); } + @Test + void 관심_대학교_목록을_조회한다() { + // given + SiteUser testUser = createSiteUser(); + int likedUniversityCount = createLikedUniversities(testUser); + + // when + List response = siteUserService.getWishUniversity(testUser.getEmail()); + + // then + assertThat(response) + .hasSize(likedUniversityCount) + .usingRecursiveFieldByFieldElementComparatorIgnoringFields("id") + .containsAll(List.of( + UniversityInfoForApplyPreviewResponse.from(괌대학_A_지원_정보), + UniversityInfoForApplyPreviewResponse.from(메이지대학_지원_정보), + UniversityInfoForApplyPreviewResponse.from(코펜하겐IT대학_지원_정보) + )); + } + private SiteUser createSiteUser() { SiteUser siteUser = new SiteUser( "test@example.com", From 5344738b771b415bff486b01b80f8c9e26ff1861 Mon Sep 17 00:00:00 2001 From: Gyuhyeok99 <126947828+Gyuhyeok99@users.noreply.github.com> Date: Mon, 20 Jan 2025 14:51:31 +0900 Subject: [PATCH 06/12] =?UTF-8?q?test:=20=ED=94=84=EB=A1=9C=ED=95=84=20?= =?UTF-8?q?=EC=9D=B4=EB=AF=B8=EC=A7=80=EB=A5=BC=20=EC=88=98=EC=A0=95=20?= =?UTF-8?q?=EA=B4=80=EB=A0=A8=20=ED=86=B5=ED=95=A9=ED=85=8C=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=20=EC=BD=94=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../siteuser/service/SiteUserServiceTest.java | 110 ++++++++++++++++++ 1 file changed, 110 insertions(+) diff --git a/src/test/java/com/example/solidconnection/siteuser/service/SiteUserServiceTest.java b/src/test/java/com/example/solidconnection/siteuser/service/SiteUserServiceTest.java index 3959c1b68..bb0f0c86f 100644 --- a/src/test/java/com/example/solidconnection/siteuser/service/SiteUserServiceTest.java +++ b/src/test/java/com/example/solidconnection/siteuser/service/SiteUserServiceTest.java @@ -1,12 +1,17 @@ package com.example.solidconnection.siteuser.service; +import com.example.solidconnection.custom.exception.CustomException; +import com.example.solidconnection.s3.S3Service; +import com.example.solidconnection.s3.UploadedFileUrlResponse; import com.example.solidconnection.siteuser.domain.SiteUser; import com.example.solidconnection.siteuser.dto.MyPageResponse; import com.example.solidconnection.siteuser.dto.MyPageUpdateResponse; +import com.example.solidconnection.siteuser.dto.ProfileImageUpdateResponse; import com.example.solidconnection.siteuser.repository.LikedUniversityRepository; import com.example.solidconnection.siteuser.repository.SiteUserRepository; import com.example.solidconnection.support.integration.BaseIntegrationTest; import com.example.solidconnection.type.Gender; +import com.example.solidconnection.type.ImgType; import com.example.solidconnection.type.PreparationStatus; import com.example.solidconnection.type.Role; import com.example.solidconnection.university.domain.LikedUniversity; @@ -15,13 +20,23 @@ import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.mock.web.MockMultipartFile; import java.util.List; +import static com.example.solidconnection.custom.exception.ErrorCode.PROFILE_IMAGE_NEEDED; import static com.example.solidconnection.support.integration.TestDataSetUpHelper.괌대학_A_지원_정보; import static com.example.solidconnection.support.integration.TestDataSetUpHelper.메이지대학_지원_정보; import static com.example.solidconnection.support.integration.TestDataSetUpHelper.코펜하겐IT대학_지원_정보; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.AssertionsForClassTypes.assertThatCode; +import static org.mockito.BDDMockito.given; +import static org.mockito.BDDMockito.then; +import static org.mockito.BDDMockito.never; +import static org.mockito.BDDMockito.any; +import static org.mockito.BDDMockito.eq; + @DisplayName("유저 서비스 테스트") class SiteUserServiceTest extends BaseIntegrationTest { @@ -29,6 +44,9 @@ class SiteUserServiceTest extends BaseIntegrationTest { @Autowired private SiteUserService siteUserService; + @MockBean + private S3Service s3Service; + @Autowired private SiteUserRepository siteUserRepository; @@ -91,6 +109,67 @@ class SiteUserServiceTest extends BaseIntegrationTest { )); } + @Test + void 새로운_이미지로_성공적으로_업데이트한다() { + // given + SiteUser testUser = createSiteUser(); + String expectedUrl = "newProfileImageUrl"; + MockMultipartFile imageFile = createValidImageFile(); + given(s3Service.uploadFile(any(), eq(ImgType.PROFILE))) + .willReturn(new UploadedFileUrlResponse(expectedUrl)); + + // when + ProfileImageUpdateResponse response = siteUserService.updateProfileImage( + testUser.getEmail(), + imageFile + ); + + // then + assertThat(response.profileImageUrl()).isEqualTo(expectedUrl); + } + + @Test + void 프로필을_처음_수정하는_것이면_이전_이미지를_삭제하지_않는다() { + // given + SiteUser testUser = createSiteUser(); + MockMultipartFile imageFile = createValidImageFile(); + given(s3Service.uploadFile(any(), eq(ImgType.PROFILE))) + .willReturn(new UploadedFileUrlResponse("newProfileImageUrl")); + + // when + siteUserService.updateProfileImage(testUser.getEmail(), imageFile); + + // then + then(s3Service).should(never()).deleteExProfile(any()); + } + + @Test + void 프로필을_처음_수정하는_것이_아니라면_이전_이미지를_삭제한다() { + // given + SiteUser testUser = createSiteUserWithCustomProfile(); + MockMultipartFile imageFile = createValidImageFile(); + given(s3Service.uploadFile(any(), eq(ImgType.PROFILE))) + .willReturn(new UploadedFileUrlResponse("newProfileImageUrl")); + + // when + siteUserService.updateProfileImage(testUser.getEmail(), imageFile); + + // then + then(s3Service).should().deleteExProfile(testUser.getEmail()); + } + + @Test + void 빈_이미지_파일로_프로필을_수정하면_예외를_반환한다() { + // given + SiteUser testUser = createSiteUser(); + MockMultipartFile emptyFile = createEmptyImageFile(); + + // when & then + assertThatCode(() -> siteUserService.updateProfileImage(testUser.getEmail(), emptyFile)) + .isInstanceOf(CustomException.class) + .hasMessage(PROFILE_IMAGE_NEEDED.getMessage()); + } + private SiteUser createSiteUser() { SiteUser siteUser = new SiteUser( "test@example.com", @@ -104,6 +183,19 @@ private SiteUser createSiteUser() { return siteUserRepository.save(siteUser); } + private SiteUser createSiteUserWithCustomProfile() { + SiteUser siteUser = new SiteUser( + "test@example.com", + "nickname", + "profile/profileImageUrl", + "1999-01-01", + PreparationStatus.CONSIDERING, + Role.MENTEE, + Gender.MALE + ); + return siteUserRepository.save(siteUser); + } + private int createLikedUniversities(SiteUser testUser) { LikedUniversity likedUniversity1 = new LikedUniversity(null, 괌대학_A_지원_정보, testUser); LikedUniversity likedUniversity2 = new LikedUniversity(null, 메이지대학_지원_정보, testUser); @@ -114,4 +206,22 @@ private int createLikedUniversities(SiteUser testUser) { likedUniversityRepository.save(likedUniversity3); return likedUniversityRepository.countBySiteUser_Email(testUser.getEmail()); } + + private MockMultipartFile createValidImageFile() { + return new MockMultipartFile( + "image", + "test.jpg", + "image/jpeg", + "test image content".getBytes() + ); + } + + private MockMultipartFile createEmptyImageFile() { + return new MockMultipartFile( + "image", + "empty.jpg", + "image/jpeg", + new byte[0] + ); + } } From 9a103fb40343419651be63ddfbc4003c8a6cea3f Mon Sep 17 00:00:00 2001 From: Gyuhyeok99 <126947828+Gyuhyeok99@users.noreply.github.com> Date: Mon, 20 Jan 2025 15:25:58 +0900 Subject: [PATCH 07/12] =?UTF-8?q?test:=20=EB=8B=89=EB=84=A4=EC=9E=84=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20=EA=B4=80=EB=A0=A8=20=ED=86=B5=ED=95=A9?= =?UTF-8?q?=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=BD=94=EB=93=9C=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../siteuser/service/SiteUserServiceTest.java | 78 ++++++++++++++++++- 1 file changed, 77 insertions(+), 1 deletion(-) diff --git a/src/test/java/com/example/solidconnection/siteuser/service/SiteUserServiceTest.java b/src/test/java/com/example/solidconnection/siteuser/service/SiteUserServiceTest.java index bb0f0c86f..cfea0e6cf 100644 --- a/src/test/java/com/example/solidconnection/siteuser/service/SiteUserServiceTest.java +++ b/src/test/java/com/example/solidconnection/siteuser/service/SiteUserServiceTest.java @@ -6,6 +6,8 @@ import com.example.solidconnection.siteuser.domain.SiteUser; import com.example.solidconnection.siteuser.dto.MyPageResponse; import com.example.solidconnection.siteuser.dto.MyPageUpdateResponse; +import com.example.solidconnection.siteuser.dto.NicknameUpdateRequest; +import com.example.solidconnection.siteuser.dto.NicknameUpdateResponse; import com.example.solidconnection.siteuser.dto.ProfileImageUpdateResponse; import com.example.solidconnection.siteuser.repository.LikedUniversityRepository; import com.example.solidconnection.siteuser.repository.SiteUserRepository; @@ -23,9 +25,14 @@ import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.mock.web.MockMultipartFile; +import java.time.LocalDateTime; import java.util.List; +import static com.example.solidconnection.custom.exception.ErrorCode.CAN_NOT_CHANGE_NICKNAME_YET; +import static com.example.solidconnection.custom.exception.ErrorCode.NICKNAME_ALREADY_EXISTED; import static com.example.solidconnection.custom.exception.ErrorCode.PROFILE_IMAGE_NEEDED; +import static com.example.solidconnection.siteuser.service.SiteUserService.MIN_DAYS_BETWEEN_NICKNAME_CHANGES; +import static com.example.solidconnection.siteuser.service.SiteUserService.NICKNAME_LAST_CHANGE_DATE_FORMAT; import static com.example.solidconnection.support.integration.TestDataSetUpHelper.괌대학_A_지원_정보; import static com.example.solidconnection.support.integration.TestDataSetUpHelper.메이지대학_지원_정보; import static com.example.solidconnection.support.integration.TestDataSetUpHelper.코펜하겐IT대학_지원_정보; @@ -37,7 +44,6 @@ import static org.mockito.BDDMockito.any; import static org.mockito.BDDMockito.eq; - @DisplayName("유저 서비스 테스트") class SiteUserServiceTest extends BaseIntegrationTest { @@ -170,6 +176,55 @@ class SiteUserServiceTest extends BaseIntegrationTest { .hasMessage(PROFILE_IMAGE_NEEDED.getMessage()); } + @Test + void 닉네임을_성공적으로_수정한다() { + // given + SiteUser testUser = createSiteUser(); + String newNickname = "newNickname"; + NicknameUpdateRequest request = new NicknameUpdateRequest(newNickname); + + // when + NicknameUpdateResponse response = siteUserService.updateNickname( + testUser.getEmail(), + request + ); + + // then + SiteUser updatedUser = siteUserRepository.getByEmail(testUser.getEmail()); + assertThat(updatedUser.getNicknameModifiedAt()).isNotNull(); + assertThat(response.nickname()).isEqualTo(newNickname); + } + + @Test + void 중복된_닉네임으로_변경시_예외가_발생한다() { + // given + createDuplicatedSiteUser(); + SiteUser testUser = createSiteUser(); + NicknameUpdateRequest request = new NicknameUpdateRequest("duplicatedNickname"); + + // when & then + assertThatCode(() -> siteUserService.updateNickname(testUser.getEmail(), request)) + .isInstanceOf(CustomException.class) + .hasMessage(NICKNAME_ALREADY_EXISTED.getMessage()); + } + + @Test + void 최소_대기기간이_지나지_않은_상태에서_변경시_예외가_발생한다() { + // given + SiteUser testUser = createSiteUser(); + LocalDateTime modifiedAt = LocalDateTime.now().minusDays(MIN_DAYS_BETWEEN_NICKNAME_CHANGES - 1); + testUser.setNicknameModifiedAt(modifiedAt); + siteUserRepository.save(testUser); + + NicknameUpdateRequest request = new NicknameUpdateRequest("newNickname"); + + // when & then + assertThatCode(() -> + siteUserService.updateNickname(testUser.getEmail(), request)) + .isInstanceOf(CustomException.class) + .hasMessage(createExpectedErrorMessage(modifiedAt)); + } + private SiteUser createSiteUser() { SiteUser siteUser = new SiteUser( "test@example.com", @@ -196,6 +251,19 @@ private SiteUser createSiteUserWithCustomProfile() { return siteUserRepository.save(siteUser); } + private void createDuplicatedSiteUser() { + SiteUser siteUser = new SiteUser( + "duplicated@example.com", + "duplicatedNickname", + "profileImageUrl", + "1999-01-01", + PreparationStatus.CONSIDERING, + Role.MENTEE, + Gender.MALE + ); + siteUserRepository.save(siteUser); + } + private int createLikedUniversities(SiteUser testUser) { LikedUniversity likedUniversity1 = new LikedUniversity(null, 괌대학_A_지원_정보, testUser); LikedUniversity likedUniversity2 = new LikedUniversity(null, 메이지대학_지원_정보, testUser); @@ -224,4 +292,12 @@ private MockMultipartFile createEmptyImageFile() { new byte[0] ); } + + private String createExpectedErrorMessage(LocalDateTime modifiedAt) { + String formatLastModifiedAt = String.format( + "(마지막 수정 시간 : %s)", + NICKNAME_LAST_CHANGE_DATE_FORMAT.format(modifiedAt) + ); + return CAN_NOT_CHANGE_NICKNAME_YET.getMessage() + " : " + formatLastModifiedAt; + } } From e2a66626810d4a5304f4c4b12f49eecb8a419ef1 Mon Sep 17 00:00:00 2001 From: Gyuhyeok99 <126947828+Gyuhyeok99@users.noreply.github.com> Date: Mon, 20 Jan 2025 16:19:59 +0900 Subject: [PATCH 08/12] =?UTF-8?q?chore:=20=EC=98=88=EC=99=B8=20=EC=9D=91?= =?UTF-8?q?=EB=8B=B5=20=ED=85=8C=EC=8A=A4=ED=8A=B8=EB=AA=85=20"~=EB=A9=B4?= =?UTF-8?q?=5F=EC=98=88=EC=99=B8=5F=EC=9D=91=EB=8B=B5=EC=9D=84=5F=EB=B0=98?= =?UTF-8?q?=ED=99=98=ED=95=9C=EB=8B=A4"=EB=A1=9C=20=ED=86=B5=EC=9D=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../siteuser/service/SiteUserServiceTest.java | 6 +++--- .../university/service/UniversityLikeServiceTest.java | 4 ++-- .../university/service/UniversityQueryServiceTest.java | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/test/java/com/example/solidconnection/siteuser/service/SiteUserServiceTest.java b/src/test/java/com/example/solidconnection/siteuser/service/SiteUserServiceTest.java index cfea0e6cf..df5f7fd8e 100644 --- a/src/test/java/com/example/solidconnection/siteuser/service/SiteUserServiceTest.java +++ b/src/test/java/com/example/solidconnection/siteuser/service/SiteUserServiceTest.java @@ -165,7 +165,7 @@ class SiteUserServiceTest extends BaseIntegrationTest { } @Test - void 빈_이미지_파일로_프로필을_수정하면_예외를_반환한다() { + void 빈_이미지_파일로_프로필을_수정하면_예외_응답을_반환한다() { // given SiteUser testUser = createSiteUser(); MockMultipartFile emptyFile = createEmptyImageFile(); @@ -196,7 +196,7 @@ class SiteUserServiceTest extends BaseIntegrationTest { } @Test - void 중복된_닉네임으로_변경시_예외가_발생한다() { + void 중복된_닉네임으로_변경하면_예외_응답을_반환한다() { // given createDuplicatedSiteUser(); SiteUser testUser = createSiteUser(); @@ -209,7 +209,7 @@ class SiteUserServiceTest extends BaseIntegrationTest { } @Test - void 최소_대기기간이_지나지_않은_상태에서_변경시_예외가_발생한다() { + void 최소_대기기간이_지나지_않은_상태에서_변경하면_예외_응답을_반환한다() { // given SiteUser testUser = createSiteUser(); LocalDateTime modifiedAt = LocalDateTime.now().minusDays(MIN_DAYS_BETWEEN_NICKNAME_CHANGES - 1); diff --git a/src/test/java/com/example/solidconnection/university/service/UniversityLikeServiceTest.java b/src/test/java/com/example/solidconnection/university/service/UniversityLikeServiceTest.java index 0913c40ab..f94dfb21c 100644 --- a/src/test/java/com/example/solidconnection/university/service/UniversityLikeServiceTest.java +++ b/src/test/java/com/example/solidconnection/university/service/UniversityLikeServiceTest.java @@ -67,7 +67,7 @@ class UniversityLikeServiceTest extends BaseIntegrationTest { } @Test - void 존재하지_않는_대학_좋아요_시도하면_예외를_반환한다() { + void 존재하지_않는_대학_좋아요_시도하면_예외_응답을_반환한다() { // given SiteUser testUser = createSiteUser(); Long invalidUniversityId = 9999L; @@ -104,7 +104,7 @@ class UniversityLikeServiceTest extends BaseIntegrationTest { } @Test - void 존재하지_않는_대학의_좋아요_여부_조회시_예외를_반환한다() { + void 존재하지_않는_대학의_좋아요_여부를_조회하면_예외_응답을_반환한다() { // given SiteUser testUser = createSiteUser(); Long invalidUniversityId = 9999L; diff --git a/src/test/java/com/example/solidconnection/university/service/UniversityQueryServiceTest.java b/src/test/java/com/example/solidconnection/university/service/UniversityQueryServiceTest.java index 6e034a84d..a22c91874 100644 --- a/src/test/java/com/example/solidconnection/university/service/UniversityQueryServiceTest.java +++ b/src/test/java/com/example/solidconnection/university/service/UniversityQueryServiceTest.java @@ -105,7 +105,7 @@ class UniversityQueryServiceTest extends BaseIntegrationTest { } @Test - void 존재하지_않는_대학_상세정보_조회시_예외_응답을_반환한다() { + void 존재하지_않는_대학_상세정보를_조회하면_예외_응답을_반환한다() { // given Long invalidUniversityInfoForApplyId = 9999L; From 78d6b869f5b53bcf6a63347afb4b3242cc9567a3 Mon Sep 17 00:00:00 2001 From: Gyuhyeok99 <126947828+Gyuhyeok99@users.noreply.github.com> Date: Tue, 21 Jan 2025 09:47:18 +0900 Subject: [PATCH 09/12] =?UTF-8?q?refactor:=20TestDataSetUpHelper=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1=EC=9E=90=20=EC=A3=BC=EC=9E=85=EC=97=90?= =?UTF-8?q?=EC=84=9C=20=ED=95=84=EB=93=9C=20=EC=A3=BC=EC=9E=85=EC=9C=BC?= =?UTF-8?q?=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../integration/TestDataSetUpHelper.java | 40 +++++++++---------- 1 file changed, 18 insertions(+), 22 deletions(-) diff --git a/src/test/java/com/example/solidconnection/support/integration/TestDataSetUpHelper.java b/src/test/java/com/example/solidconnection/support/integration/TestDataSetUpHelper.java index 06d866d03..18b77184e 100644 --- a/src/test/java/com/example/solidconnection/support/integration/TestDataSetUpHelper.java +++ b/src/test/java/com/example/solidconnection/support/integration/TestDataSetUpHelper.java @@ -11,6 +11,7 @@ import com.example.solidconnection.university.repository.LanguageRequirementRepository; import com.example.solidconnection.university.repository.UniversityInfoForApplyRepository; import com.example.solidconnection.university.repository.UniversityRepository; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @@ -52,28 +53,23 @@ public class TestDataSetUpHelper { public static UniversityInfoForApply 린츠_카톨릭대학_지원_정보; public static UniversityInfoForApply 메이지대학_지원_정보; - private final RegionRepository regionRepository; - private final CountryRepository countryRepository; - private final UniversityRepository universityRepository; - private final UniversityInfoForApplyRepository universityInfoForApplyRepository; - private final LanguageRequirementRepository languageRequirementRepository; - private final String term; - - public TestDataSetUpHelper( - RegionRepository regionRepository, - CountryRepository countryRepository, - UniversityRepository universityRepository, - UniversityInfoForApplyRepository universityInfoForApplyRepository, - LanguageRequirementRepository languageRequirementRepository, - @Value("${university.term}") String term - ) { - this.regionRepository = regionRepository; - this.countryRepository = countryRepository; - this.universityRepository = universityRepository; - this.universityInfoForApplyRepository = universityInfoForApplyRepository; - this.languageRequirementRepository = languageRequirementRepository; - this.term = term; - } + @Autowired + private RegionRepository regionRepository; + + @Autowired + private CountryRepository countryRepository; + + @Autowired + private UniversityRepository universityRepository; + + @Autowired + private UniversityInfoForApplyRepository universityInfoForApplyRepository; + + @Autowired + private LanguageRequirementRepository languageRequirementRepository; + + @Value("${university.term}") + public String term; public void setUpBasicData() { setupRegions(); From d17341c1d9547e90f04f4fc6ff75ffc3bb7e33d0 Mon Sep 17 00:00:00 2001 From: Gyuhyeok99 <126947828+Gyuhyeok99@users.noreply.github.com> Date: Tue, 21 Jan 2025 09:52:18 +0900 Subject: [PATCH 10/12] =?UTF-8?q?style:=20=EC=B9=B4=EB=A9=9C=EC=BC=80?= =?UTF-8?q?=EC=9D=B4=EC=8A=A4=EC=97=90=20=EB=A7=9E=EA=B2=8C=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../integration/TestDataSetUpHelper.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/test/java/com/example/solidconnection/support/integration/TestDataSetUpHelper.java b/src/test/java/com/example/solidconnection/support/integration/TestDataSetUpHelper.java index 18b77184e..828eed326 100644 --- a/src/test/java/com/example/solidconnection/support/integration/TestDataSetUpHelper.java +++ b/src/test/java/com/example/solidconnection/support/integration/TestDataSetUpHelper.java @@ -72,20 +72,20 @@ public class TestDataSetUpHelper { public String term; public void setUpBasicData() { - setupRegions(); - setupCountries(); - setupUniversities(); - setupUniversityInfos(); - setupLanguageRequirements(); + setUpRegions(); + setUpCountries(); + setUpUniversities(); + setUpUniversityInfos(); + setUpLanguageRequirements(); } - private void setupRegions() { + private void setUpRegions() { 영미권 = regionRepository.save(new Region("AMERICAS", "영미권")); 유럽 = regionRepository.save(new Region("EUROPE", "유럽")); 아시아 = regionRepository.save(new Region("ASIA", "아시아")); } - private void setupCountries() { + private void setUpCountries() { 미국 = countryRepository.save(new Country("US", "미국", 영미권)); 캐나다 = countryRepository.save(new Country("CA", "캐나다", 영미권)); 덴마크 = countryRepository.save(new Country("DK", "덴마크", 유럽)); @@ -93,7 +93,7 @@ private void setupCountries() { 일본 = countryRepository.save(new Country("JP", "일본", 아시아)); } - private void setupUniversities() { + private void setUpUniversities() { 영미권_미국_괌대학 = universityRepository.save(new University( null, "괌대학", "University of Guam", "university_of_guam", "https://www.uog.edu/admissions/international-students", @@ -181,7 +181,7 @@ private void setupUniversities() { )); } - private void setupUniversityInfos() { + private void setUpUniversityInfos() { 괌대학_A_지원_정보 = universityInfoForApplyRepository.save(new UniversityInfoForApply( null, term, "괌대학(A형)", 1, HOME_UNIVERSITY_PAYMENT, ONE_SEMESTER, "1", "detailsForLanguage", "gpaRequirement", @@ -263,7 +263,7 @@ private void setupUniversityInfos() { )); } - private void setupLanguageRequirements() { + private void setUpLanguageRequirements() { saveLanguageTestRequirement(괌대학_A_지원_정보, LanguageTestType.TOEFL_IBT, "80"); saveLanguageTestRequirement(괌대학_A_지원_정보, LanguageTestType.TOEIC, "800"); saveLanguageTestRequirement(괌대학_B_지원_정보, LanguageTestType.TOEFL_IBT, "70"); From 958d59b987c7d8cf9618c030878e331630ee5e67 Mon Sep 17 00:00:00 2001 From: Gyuhyeok99 <126947828+Gyuhyeok99@users.noreply.github.com> Date: Tue, 21 Jan 2025 10:00:46 +0900 Subject: [PATCH 11/12] =?UTF-8?q?refactor:=20@Nested=EB=A5=BC=20=EC=82=AC?= =?UTF-8?q?=EC=9A=A9=ED=95=98=EC=97=AC=20=ED=94=84=EB=A1=9C=ED=95=84=20?= =?UTF-8?q?=EC=9D=B4=EB=AF=B8=EC=A7=80,=20=EB=8B=89=EB=84=A4=EC=9E=84=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EA=B7=B8?= =?UTF-8?q?=EB=A3=B9=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../siteuser/service/SiteUserServiceTest.java | 221 +++++++++--------- 1 file changed, 115 insertions(+), 106 deletions(-) diff --git a/src/test/java/com/example/solidconnection/siteuser/service/SiteUserServiceTest.java b/src/test/java/com/example/solidconnection/siteuser/service/SiteUserServiceTest.java index df5f7fd8e..60474ed6e 100644 --- a/src/test/java/com/example/solidconnection/siteuser/service/SiteUserServiceTest.java +++ b/src/test/java/com/example/solidconnection/siteuser/service/SiteUserServiceTest.java @@ -20,6 +20,7 @@ import com.example.solidconnection.university.dto.UniversityInfoForApplyPreviewResponse; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.mock.mockito.MockBean; @@ -115,114 +116,122 @@ class SiteUserServiceTest extends BaseIntegrationTest { )); } - @Test - void 새로운_이미지로_성공적으로_업데이트한다() { - // given - SiteUser testUser = createSiteUser(); - String expectedUrl = "newProfileImageUrl"; - MockMultipartFile imageFile = createValidImageFile(); - given(s3Service.uploadFile(any(), eq(ImgType.PROFILE))) - .willReturn(new UploadedFileUrlResponse(expectedUrl)); - - // when - ProfileImageUpdateResponse response = siteUserService.updateProfileImage( - testUser.getEmail(), - imageFile - ); - - // then - assertThat(response.profileImageUrl()).isEqualTo(expectedUrl); - } - - @Test - void 프로필을_처음_수정하는_것이면_이전_이미지를_삭제하지_않는다() { - // given - SiteUser testUser = createSiteUser(); - MockMultipartFile imageFile = createValidImageFile(); - given(s3Service.uploadFile(any(), eq(ImgType.PROFILE))) - .willReturn(new UploadedFileUrlResponse("newProfileImageUrl")); - - // when - siteUserService.updateProfileImage(testUser.getEmail(), imageFile); - - // then - then(s3Service).should(never()).deleteExProfile(any()); - } - - @Test - void 프로필을_처음_수정하는_것이_아니라면_이전_이미지를_삭제한다() { - // given - SiteUser testUser = createSiteUserWithCustomProfile(); - MockMultipartFile imageFile = createValidImageFile(); - given(s3Service.uploadFile(any(), eq(ImgType.PROFILE))) - .willReturn(new UploadedFileUrlResponse("newProfileImageUrl")); - - // when - siteUserService.updateProfileImage(testUser.getEmail(), imageFile); - - // then - then(s3Service).should().deleteExProfile(testUser.getEmail()); - } - - @Test - void 빈_이미지_파일로_프로필을_수정하면_예외_응답을_반환한다() { - // given - SiteUser testUser = createSiteUser(); - MockMultipartFile emptyFile = createEmptyImageFile(); - - // when & then - assertThatCode(() -> siteUserService.updateProfileImage(testUser.getEmail(), emptyFile)) - .isInstanceOf(CustomException.class) - .hasMessage(PROFILE_IMAGE_NEEDED.getMessage()); - } - - @Test - void 닉네임을_성공적으로_수정한다() { - // given - SiteUser testUser = createSiteUser(); - String newNickname = "newNickname"; - NicknameUpdateRequest request = new NicknameUpdateRequest(newNickname); - - // when - NicknameUpdateResponse response = siteUserService.updateNickname( - testUser.getEmail(), - request - ); - - // then - SiteUser updatedUser = siteUserRepository.getByEmail(testUser.getEmail()); - assertThat(updatedUser.getNicknameModifiedAt()).isNotNull(); - assertThat(response.nickname()).isEqualTo(newNickname); + @Nested + class 프로필_이미지_수정_테스트 { + + @Test + void 새로운_이미지로_성공적으로_업데이트한다() { + // given + SiteUser testUser = createSiteUser(); + String expectedUrl = "newProfileImageUrl"; + MockMultipartFile imageFile = createValidImageFile(); + given(s3Service.uploadFile(any(), eq(ImgType.PROFILE))) + .willReturn(new UploadedFileUrlResponse(expectedUrl)); + + // when + ProfileImageUpdateResponse response = siteUserService.updateProfileImage( + testUser.getEmail(), + imageFile + ); + + // then + assertThat(response.profileImageUrl()).isEqualTo(expectedUrl); + } + + @Test + void 프로필을_처음_수정하는_것이면_이전_이미지를_삭제하지_않는다() { + // given + SiteUser testUser = createSiteUser(); + MockMultipartFile imageFile = createValidImageFile(); + given(s3Service.uploadFile(any(), eq(ImgType.PROFILE))) + .willReturn(new UploadedFileUrlResponse("newProfileImageUrl")); + + // when + siteUserService.updateProfileImage(testUser.getEmail(), imageFile); + + // then + then(s3Service).should(never()).deleteExProfile(any()); + } + + @Test + void 프로필을_처음_수정하는_것이_아니라면_이전_이미지를_삭제한다() { + // given + SiteUser testUser = createSiteUserWithCustomProfile(); + MockMultipartFile imageFile = createValidImageFile(); + given(s3Service.uploadFile(any(), eq(ImgType.PROFILE))) + .willReturn(new UploadedFileUrlResponse("newProfileImageUrl")); + + // when + siteUserService.updateProfileImage(testUser.getEmail(), imageFile); + + // then + then(s3Service).should().deleteExProfile(testUser.getEmail()); + } + + @Test + void 빈_이미지_파일로_프로필을_수정하면_예외_응답을_반환한다() { + // given + SiteUser testUser = createSiteUser(); + MockMultipartFile emptyFile = createEmptyImageFile(); + + // when & then + assertThatCode(() -> siteUserService.updateProfileImage(testUser.getEmail(), emptyFile)) + .isInstanceOf(CustomException.class) + .hasMessage(PROFILE_IMAGE_NEEDED.getMessage()); + } } - @Test - void 중복된_닉네임으로_변경하면_예외_응답을_반환한다() { - // given - createDuplicatedSiteUser(); - SiteUser testUser = createSiteUser(); - NicknameUpdateRequest request = new NicknameUpdateRequest("duplicatedNickname"); - - // when & then - assertThatCode(() -> siteUserService.updateNickname(testUser.getEmail(), request)) - .isInstanceOf(CustomException.class) - .hasMessage(NICKNAME_ALREADY_EXISTED.getMessage()); - } - - @Test - void 최소_대기기간이_지나지_않은_상태에서_변경하면_예외_응답을_반환한다() { - // given - SiteUser testUser = createSiteUser(); - LocalDateTime modifiedAt = LocalDateTime.now().minusDays(MIN_DAYS_BETWEEN_NICKNAME_CHANGES - 1); - testUser.setNicknameModifiedAt(modifiedAt); - siteUserRepository.save(testUser); - - NicknameUpdateRequest request = new NicknameUpdateRequest("newNickname"); - - // when & then - assertThatCode(() -> - siteUserService.updateNickname(testUser.getEmail(), request)) - .isInstanceOf(CustomException.class) - .hasMessage(createExpectedErrorMessage(modifiedAt)); + @Nested + class 닉네임_수정_테스트 { + + @Test + void 닉네임을_성공적으로_수정한다() { + // given + SiteUser testUser = createSiteUser(); + String newNickname = "newNickname"; + NicknameUpdateRequest request = new NicknameUpdateRequest(newNickname); + + // when + NicknameUpdateResponse response = siteUserService.updateNickname( + testUser.getEmail(), + request + ); + + // then + SiteUser updatedUser = siteUserRepository.getByEmail(testUser.getEmail()); + assertThat(updatedUser.getNicknameModifiedAt()).isNotNull(); + assertThat(response.nickname()).isEqualTo(newNickname); + } + + @Test + void 중복된_닉네임으로_변경하면_예외_응답을_반환한다() { + // given + createDuplicatedSiteUser(); + SiteUser testUser = createSiteUser(); + NicknameUpdateRequest request = new NicknameUpdateRequest("duplicatedNickname"); + + // when & then + assertThatCode(() -> siteUserService.updateNickname(testUser.getEmail(), request)) + .isInstanceOf(CustomException.class) + .hasMessage(NICKNAME_ALREADY_EXISTED.getMessage()); + } + + @Test + void 최소_대기기간이_지나지_않은_상태에서_변경하면_예외_응답을_반환한다() { + // given + SiteUser testUser = createSiteUser(); + LocalDateTime modifiedAt = LocalDateTime.now().minusDays(MIN_DAYS_BETWEEN_NICKNAME_CHANGES - 1); + testUser.setNicknameModifiedAt(modifiedAt); + siteUserRepository.save(testUser); + + NicknameUpdateRequest request = new NicknameUpdateRequest("newNickname"); + + // when & then + assertThatCode(() -> + siteUserService.updateNickname(testUser.getEmail(), request)) + .isInstanceOf(CustomException.class) + .hasMessage(createExpectedErrorMessage(modifiedAt)); + } } private SiteUser createSiteUser() { From e247831a5efc20c7ccc9858b06facdd26ec46206 Mon Sep 17 00:00:00 2001 From: Gyuhyeok99 <126947828+Gyuhyeok99@users.noreply.github.com> Date: Wed, 22 Jan 2025 15:46:23 +0900 Subject: [PATCH 12/12] =?UTF-8?q?refactor:=20TestDataSetUpHelper=EB=A5=BC?= =?UTF-8?q?=20BaseIntegrationTest=EB=A1=9C=20=ED=86=B5=ED=95=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../siteuser/service/SiteUserServiceTest.java | 3 - .../integration/BaseIntegrationTest.java | 284 ++++++++++++++++- .../integration/TestDataSetUpHelper.java | 295 ------------------ .../service/UniversityLikeServiceTest.java | 1 - .../service/UniversityQueryServiceTest.java | 13 - .../UniversityRecommendServiceTest.java | 13 +- 6 files changed, 284 insertions(+), 325 deletions(-) delete mode 100644 src/test/java/com/example/solidconnection/support/integration/TestDataSetUpHelper.java diff --git a/src/test/java/com/example/solidconnection/siteuser/service/SiteUserServiceTest.java b/src/test/java/com/example/solidconnection/siteuser/service/SiteUserServiceTest.java index 60474ed6e..8fdae031e 100644 --- a/src/test/java/com/example/solidconnection/siteuser/service/SiteUserServiceTest.java +++ b/src/test/java/com/example/solidconnection/siteuser/service/SiteUserServiceTest.java @@ -34,9 +34,6 @@ import static com.example.solidconnection.custom.exception.ErrorCode.PROFILE_IMAGE_NEEDED; import static com.example.solidconnection.siteuser.service.SiteUserService.MIN_DAYS_BETWEEN_NICKNAME_CHANGES; import static com.example.solidconnection.siteuser.service.SiteUserService.NICKNAME_LAST_CHANGE_DATE_FORMAT; -import static com.example.solidconnection.support.integration.TestDataSetUpHelper.괌대학_A_지원_정보; -import static com.example.solidconnection.support.integration.TestDataSetUpHelper.메이지대학_지원_정보; -import static com.example.solidconnection.support.integration.TestDataSetUpHelper.코펜하겐IT대학_지원_정보; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.AssertionsForClassTypes.assertThatCode; import static org.mockito.BDDMockito.given; diff --git a/src/test/java/com/example/solidconnection/support/integration/BaseIntegrationTest.java b/src/test/java/com/example/solidconnection/support/integration/BaseIntegrationTest.java index 1f1c3d752..b1f7d9203 100644 --- a/src/test/java/com/example/solidconnection/support/integration/BaseIntegrationTest.java +++ b/src/test/java/com/example/solidconnection/support/integration/BaseIntegrationTest.java @@ -1,20 +1,300 @@ package com.example.solidconnection.support.integration; +import com.example.solidconnection.entity.Country; +import com.example.solidconnection.entity.Region; +import com.example.solidconnection.repositories.CountryRepository; +import com.example.solidconnection.repositories.RegionRepository; import com.example.solidconnection.support.DatabaseClearExtension; import com.example.solidconnection.support.TestContainerSpringBootTest; +import com.example.solidconnection.type.LanguageTestType; +import com.example.solidconnection.university.domain.LanguageRequirement; +import com.example.solidconnection.university.domain.University; +import com.example.solidconnection.university.domain.UniversityInfoForApply; +import com.example.solidconnection.university.repository.LanguageRequirementRepository; +import com.example.solidconnection.university.repository.UniversityInfoForApplyRepository; +import com.example.solidconnection.university.repository.UniversityRepository; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; + +import java.util.HashSet; + +import static com.example.solidconnection.type.SemesterAvailableForDispatch.ONE_SEMESTER; +import static com.example.solidconnection.type.TuitionFeeType.HOME_UNIVERSITY_PAYMENT; @TestContainerSpringBootTest @ExtendWith(DatabaseClearExtension.class) public abstract class BaseIntegrationTest { + public static Region 영미권; + public static Region 유럽; + public static Region 아시아; + public static Country 미국; + public static Country 캐나다; + public static Country 덴마크; + public static Country 오스트리아; + public static Country 일본; + + public static University 영미권_미국_괌대학; + public static University 영미권_미국_네바다주립대학_라스베이거스; + public static University 영미권_캐나다_메모리얼대학_세인트존스; + public static University 유럽_덴마크_서던덴마크대학교; + public static University 유럽_덴마크_코펜하겐IT대학; + public static University 유럽_오스트리아_그라츠대학; + public static University 유럽_오스트리아_그라츠공과대학; + public static University 유럽_오스트리아_린츠_카톨릭대학; + public static University 아시아_일본_메이지대학; + + public static UniversityInfoForApply 괌대학_A_지원_정보; + public static UniversityInfoForApply 괌대학_B_지원_정보; + public static UniversityInfoForApply 네바다주립대학_라스베이거스_지원_정보; + public static UniversityInfoForApply 메모리얼대학_세인트존스_A_지원_정보; + public static UniversityInfoForApply 서던덴마크대학교_지원_정보; + public static UniversityInfoForApply 코펜하겐IT대학_지원_정보; + public static UniversityInfoForApply 그라츠대학_지원_정보; + public static UniversityInfoForApply 그라츠공과대학_지원_정보; + public static UniversityInfoForApply 린츠_카톨릭대학_지원_정보; + public static UniversityInfoForApply 메이지대학_지원_정보; + + @Autowired + private RegionRepository regionRepository; + + @Autowired + private CountryRepository countryRepository; + + @Autowired + private UniversityRepository universityRepository; + @Autowired - protected TestDataSetUpHelper testDataSetUpHelper; + private UniversityInfoForApplyRepository universityInfoForApplyRepository; + + @Autowired + private LanguageRequirementRepository languageRequirementRepository; + + @Value("${university.term}") + public String term; @BeforeEach public void setUpBaseData() { - testDataSetUpHelper.setUpBasicData(); + setUpRegions(); + setUpCountries(); + setUpUniversities(); + setUpUniversityInfos(); + setUpLanguageRequirements(); + } + + private void setUpRegions() { + 영미권 = regionRepository.save(new Region("AMERICAS", "영미권")); + 유럽 = regionRepository.save(new Region("EUROPE", "유럽")); + 아시아 = regionRepository.save(new Region("ASIA", "아시아")); + } + + private void setUpCountries() { + 미국 = countryRepository.save(new Country("US", "미국", 영미권)); + 캐나다 = countryRepository.save(new Country("CA", "캐나다", 영미권)); + 덴마크 = countryRepository.save(new Country("DK", "덴마크", 유럽)); + 오스트리아 = countryRepository.save(new Country("AT", "오스트리아", 유럽)); + 일본 = countryRepository.save(new Country("JP", "일본", 아시아)); + } + + private void setUpUniversities() { + 영미권_미국_괌대학 = universityRepository.save(new University( + null, "괌대학", "University of Guam", "university_of_guam", + "https://www.uog.edu/admissions/international-students", + "https://www.uog.edu/admissions/course-schedule", + "https://www.uog.edu/life-at-uog/residence-halls/", + "https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/university_of_guam/logo.png", + "https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/university_of_guam/1.png", + null, 미국, 영미권 + )); + + 영미권_미국_네바다주립대학_라스베이거스 = universityRepository.save(new University( + null, "네바다주립대학 라스베이거스", "University of Nevada, Las Vegas", "university_of_nevada_las_vegas", + "https://www.unlv.edu/engineering/eip", + "https://www.unlv.edu/engineering/academic-programs", + "https://www.unlv.edu/housing", + "https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/university_of_nevada_las_vegas/logo.png", + "https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/university_of_nevada_las_vegas/1.png", + null, 미국, 영미권 + )); + + 영미권_캐나다_메모리얼대학_세인트존스 = universityRepository.save(new University( + null, "메모리얼 대학 세인트존스", "Memorial University of Newfoundland St. John's", "memorial_university_of_newfoundland_st_johns", + "https://mun.ca/goabroad/visiting-students-inbound/", + "https://www.unlv.edu/engineering/academic-programs", + "https://www.mun.ca/residences/", + "https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/memorial_university_of_newfoundland_st_johns/logo.png", + "https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/memorial_university_of_newfoundland_st_johns/1.png", + null, 캐나다, 영미권 + )); + + 유럽_덴마크_서던덴마크대학교 = universityRepository.save(new University( + null, "서던덴마크대학교", "University of Southern Denmark", "university_of_southern_denmark", + "https://www.sdu.dk/en", + "https://www.sdu.dk/en", + "https://www.sdu.dk/en/uddannelse/information_for_international_students/studenthousing", + "https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/university_of_southern_denmark/logo.png", + "https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/university_of_southern_denmark/1.png", + null, 덴마크, 유럽 + )); + + 유럽_덴마크_코펜하겐IT대학 = universityRepository.save(new University( + null, "코펜하겐 IT대학", "IT University of Copenhagen", "it_university_of_copenhagen", + "https://en.itu.dk/", null, + "https://en.itu.dk/Programmes/Student-Life/Practical-information-for-international-students", + "https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/it_university_of_copenhagen/logo.png", + "https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/it_university_of_copenhagen/1.png", + null, 덴마크, 유럽 + )); + + 유럽_오스트리아_그라츠대학 = universityRepository.save(new University( + null, "그라츠 대학", "University of Graz", "university_of_graz", + "https://www.uni-graz.at/en/", + "https://static.uni-graz.at/fileadmin/veranstaltungen/orientation/documents/incstud_application-courses.pdf", + "https://orientation.uni-graz.at/de/planning-the-arrival/accommodation/", + "https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/university_of_graz/logo.png", + "https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/university_of_graz/1.png", + null, 오스트리아, 유럽 + )); + + 유럽_오스트리아_그라츠공과대학 = universityRepository.save(new University( + null, "그라츠공과대학", "Graz University of Technology", "graz_university_of_technology", + "https://www.tugraz.at/en/home", null, + "https://www.tugraz.at/en/studying-and-teaching/studying-internationally/incoming-students-exchange-at-tu-graz/your-stay-at-tu-graz/preparation#c75033", + "https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/graz_university_of_technology/logo.png", + "https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/graz_university_of_technology/1.png", + null, 오스트리아, 유럽 + )); + + 유럽_오스트리아_린츠_카톨릭대학 = universityRepository.save(new University( + null, "린츠 카톨릭 대학교", "Catholic Private University Linz", "catholic_private_university_linz", + "https://ku-linz.at/en", null, + "https://ku-linz.at/en/ku_international/incomings/kulis", + "https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/catholic_private_university_linz/logo.png", + "https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/catholic_private_university_linz/1.png", + null, 오스트리아, 유럽 + )); + + 아시아_일본_메이지대학 = universityRepository.save(new University( + null, "메이지대학", "Meiji University", "meiji_university", + "https://www.meiji.ac.jp/cip/english/admissions/co7mm90000000461-att/co7mm900000004fa.pdf", null, + "https://www.meiji.ac.jp/cip/english/admissions/co7mm90000000461-att/co7mm900000004fa.pdf", + "https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/meiji_university/logo.png", + "https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/meiji_university/1.png", + null, 일본, 아시아 + )); + } + + private void setUpUniversityInfos() { + 괌대학_A_지원_정보 = universityInfoForApplyRepository.save(new UniversityInfoForApply( + null, term, "괌대학(A형)", 1, HOME_UNIVERSITY_PAYMENT, ONE_SEMESTER, + "1", "detailsForLanguage", "gpaRequirement", + "gpaRequirementCriteria", "detailsForApply", "detailsForMajor", + "detailsForAccommodation", "detailsForEnglishCourse", "details", + new HashSet<>(), 영미권_미국_괌대학 + )); + + 괌대학_B_지원_정보 = universityInfoForApplyRepository.save(new UniversityInfoForApply( + null, term, "괌대학(B형)", 1, HOME_UNIVERSITY_PAYMENT, ONE_SEMESTER, + "1", "detailsForLanguage", "gpaRequirement", + "gpaRequirementCriteria", "detailsForApply", "detailsForMajor", + "detailsForAccommodation", "detailsForEnglishCourse", "details", + new HashSet<>(), 영미권_미국_괌대학 + )); + + 네바다주립대학_라스베이거스_지원_정보 = universityInfoForApplyRepository.save(new UniversityInfoForApply( + null, term, "네바다주립대학 라스베이거스(B형)", 1, HOME_UNIVERSITY_PAYMENT, ONE_SEMESTER, + "1", "detailsForLanguage", "gpaRequirement", + "gpaRequirementCriteria", "detailsForApply", "detailsForMajor", + "detailsForAccommodation", "detailsForEnglishCourse", "details", + new HashSet<>(), 영미권_미국_네바다주립대학_라스베이거스 + )); + + 메모리얼대학_세인트존스_A_지원_정보 = universityInfoForApplyRepository.save(new UniversityInfoForApply( + null, term, "메모리얼 대학 세인트존스(A형)", 1, HOME_UNIVERSITY_PAYMENT, ONE_SEMESTER, + "1", "detailsForLanguage", "gpaRequirement", + "gpaRequirementCriteria", "detailsForApply", "detailsForMajor", + "detailsForAccommodation", "detailsForEnglishCourse", "details", + new HashSet<>(), 영미권_캐나다_메모리얼대학_세인트존스 + )); + + 서던덴마크대학교_지원_정보 = universityInfoForApplyRepository.save(new UniversityInfoForApply( + null, term, "서던덴마크대학교", 1, HOME_UNIVERSITY_PAYMENT, ONE_SEMESTER, + "1", "detailsForLanguage", "gpaRequirement", + "gpaRequirementCriteria", "detailsForApply", "detailsForMajor", + "detailsForAccommodation", "detailsForEnglishCourse", "details", + new HashSet<>(), 유럽_덴마크_서던덴마크대학교 + )); + + 코펜하겐IT대학_지원_정보 = universityInfoForApplyRepository.save(new UniversityInfoForApply( + null, term, "코펜하겐 IT대학", 1, HOME_UNIVERSITY_PAYMENT, ONE_SEMESTER, + "1", "detailsForLanguage", "gpaRequirement", + "gpaRequirementCriteria", "detailsForApply", "detailsForMajor", + "detailsForAccommodation", "detailsForEnglishCourse", "details", + new HashSet<>(), 유럽_덴마크_코펜하겐IT대학 + )); + + 그라츠대학_지원_정보 = universityInfoForApplyRepository.save(new UniversityInfoForApply( + null, term, "그라츠 대학", 1, HOME_UNIVERSITY_PAYMENT, ONE_SEMESTER, + "1", "detailsForLanguage", "gpaRequirement", + "gpaRequirementCriteria", "detailsForApply", "detailsForMajor", + "detailsForAccommodation", "detailsForEnglishCourse", "details", + new HashSet<>(), 유럽_오스트리아_그라츠대학 + )); + + 그라츠공과대학_지원_정보 = universityInfoForApplyRepository.save(new UniversityInfoForApply( + null, term, "그라츠공과대학", 1, HOME_UNIVERSITY_PAYMENT, ONE_SEMESTER, + "1", "detailsForLanguage", "gpaRequirement", + "gpaRequirementCriteria", "detailsForApply", "detailsForMajor", + "detailsForAccommodation", "detailsForEnglishCourse", "details", + new HashSet<>(), 유럽_오스트리아_그라츠공과대학 + )); + + 린츠_카톨릭대학_지원_정보 = universityInfoForApplyRepository.save(new UniversityInfoForApply( + null, term, "린츠 카톨릭 대학교", 1, HOME_UNIVERSITY_PAYMENT, ONE_SEMESTER, + "1", "detailsForLanguage", "gpaRequirement", + "gpaRequirementCriteria", "detailsForApply", "detailsForMajor", + "detailsForAccommodation", "detailsForEnglishCourse", "details", + new HashSet<>(), 유럽_오스트리아_린츠_카톨릭대학 + )); + + 메이지대학_지원_정보 = universityInfoForApplyRepository.save(new UniversityInfoForApply( + null, term, "메이지대학", 1, HOME_UNIVERSITY_PAYMENT, ONE_SEMESTER, + "1", "detailsForLanguage", "gpaRequirement", + "gpaRequirementCriteria", "detailsForApply", "detailsForMajor", + "detailsForAccommodation", "detailsForEnglishCourse", "details", + new HashSet<>(), 아시아_일본_메이지대학 + )); + } + + private void setUpLanguageRequirements() { + saveLanguageTestRequirement(괌대학_A_지원_정보, LanguageTestType.TOEFL_IBT, "80"); + saveLanguageTestRequirement(괌대학_A_지원_정보, LanguageTestType.TOEIC, "800"); + saveLanguageTestRequirement(괌대학_B_지원_정보, LanguageTestType.TOEFL_IBT, "70"); + saveLanguageTestRequirement(괌대학_B_지원_정보, LanguageTestType.TOEIC, "900"); + saveLanguageTestRequirement(네바다주립대학_라스베이거스_지원_정보, LanguageTestType.TOEIC, "800"); + saveLanguageTestRequirement(메모리얼대학_세인트존스_A_지원_정보, LanguageTestType.TOEIC, "800"); + saveLanguageTestRequirement(서던덴마크대학교_지원_정보, LanguageTestType.TOEFL_IBT, "70"); + saveLanguageTestRequirement(코펜하겐IT대학_지원_정보, LanguageTestType.TOEFL_IBT, "80"); + saveLanguageTestRequirement(그라츠대학_지원_정보, LanguageTestType.TOEFL_IBT, "80"); + saveLanguageTestRequirement(그라츠공과대학_지원_정보, LanguageTestType.TOEIC, "800"); + saveLanguageTestRequirement(린츠_카톨릭대학_지원_정보, LanguageTestType.TOEIC, "800"); + saveLanguageTestRequirement(메이지대학_지원_정보, LanguageTestType.JLPT, "N2"); + } + + private void saveLanguageTestRequirement( + UniversityInfoForApply universityInfoForApply, + LanguageTestType testType, + String minScore + ) { + LanguageRequirement languageRequirement = new LanguageRequirement( + null, + testType, + minScore, + universityInfoForApply); + universityInfoForApply.addLanguageRequirements(languageRequirement); + universityInfoForApplyRepository.save(universityInfoForApply); + languageRequirementRepository.save(languageRequirement); } } diff --git a/src/test/java/com/example/solidconnection/support/integration/TestDataSetUpHelper.java b/src/test/java/com/example/solidconnection/support/integration/TestDataSetUpHelper.java deleted file mode 100644 index 828eed326..000000000 --- a/src/test/java/com/example/solidconnection/support/integration/TestDataSetUpHelper.java +++ /dev/null @@ -1,295 +0,0 @@ -package com.example.solidconnection.support.integration; - -import com.example.solidconnection.entity.Country; -import com.example.solidconnection.entity.Region; -import com.example.solidconnection.repositories.CountryRepository; -import com.example.solidconnection.repositories.RegionRepository; -import com.example.solidconnection.type.LanguageTestType; -import com.example.solidconnection.university.domain.LanguageRequirement; -import com.example.solidconnection.university.domain.University; -import com.example.solidconnection.university.domain.UniversityInfoForApply; -import com.example.solidconnection.university.repository.LanguageRequirementRepository; -import com.example.solidconnection.university.repository.UniversityInfoForApplyRepository; -import com.example.solidconnection.university.repository.UniversityRepository; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Component; - -import java.util.HashSet; - -import static com.example.solidconnection.type.SemesterAvailableForDispatch.ONE_SEMESTER; -import static com.example.solidconnection.type.TuitionFeeType.HOME_UNIVERSITY_PAYMENT; - -@Component -public class TestDataSetUpHelper { - - public static Region 영미권; - public static Region 유럽; - public static Region 아시아; - public static Country 미국; - public static Country 캐나다; - public static Country 덴마크; - public static Country 오스트리아; - public static Country 일본; - - public static University 영미권_미국_괌대학; - public static University 영미권_미국_네바다주립대학_라스베이거스; - public static University 영미권_캐나다_메모리얼대학_세인트존스; - public static University 유럽_덴마크_서던덴마크대학교; - public static University 유럽_덴마크_코펜하겐IT대학; - public static University 유럽_오스트리아_그라츠대학; - public static University 유럽_오스트리아_그라츠공과대학; - public static University 유럽_오스트리아_린츠_카톨릭대학; - public static University 아시아_일본_메이지대학; - - public static UniversityInfoForApply 괌대학_A_지원_정보; - public static UniversityInfoForApply 괌대학_B_지원_정보; - public static UniversityInfoForApply 네바다주립대학_라스베이거스_지원_정보; - public static UniversityInfoForApply 메모리얼대학_세인트존스_A_지원_정보; - public static UniversityInfoForApply 서던덴마크대학교_지원_정보; - public static UniversityInfoForApply 코펜하겐IT대학_지원_정보; - public static UniversityInfoForApply 그라츠대학_지원_정보; - public static UniversityInfoForApply 그라츠공과대학_지원_정보; - public static UniversityInfoForApply 린츠_카톨릭대학_지원_정보; - public static UniversityInfoForApply 메이지대학_지원_정보; - - @Autowired - private RegionRepository regionRepository; - - @Autowired - private CountryRepository countryRepository; - - @Autowired - private UniversityRepository universityRepository; - - @Autowired - private UniversityInfoForApplyRepository universityInfoForApplyRepository; - - @Autowired - private LanguageRequirementRepository languageRequirementRepository; - - @Value("${university.term}") - public String term; - - public void setUpBasicData() { - setUpRegions(); - setUpCountries(); - setUpUniversities(); - setUpUniversityInfos(); - setUpLanguageRequirements(); - } - - private void setUpRegions() { - 영미권 = regionRepository.save(new Region("AMERICAS", "영미권")); - 유럽 = regionRepository.save(new Region("EUROPE", "유럽")); - 아시아 = regionRepository.save(new Region("ASIA", "아시아")); - } - - private void setUpCountries() { - 미국 = countryRepository.save(new Country("US", "미국", 영미권)); - 캐나다 = countryRepository.save(new Country("CA", "캐나다", 영미권)); - 덴마크 = countryRepository.save(new Country("DK", "덴마크", 유럽)); - 오스트리아 = countryRepository.save(new Country("AT", "오스트리아", 유럽)); - 일본 = countryRepository.save(new Country("JP", "일본", 아시아)); - } - - private void setUpUniversities() { - 영미권_미국_괌대학 = universityRepository.save(new University( - null, "괌대학", "University of Guam", "university_of_guam", - "https://www.uog.edu/admissions/international-students", - "https://www.uog.edu/admissions/course-schedule", - "https://www.uog.edu/life-at-uog/residence-halls/", - "https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/university_of_guam/logo.png", - "https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/university_of_guam/1.png", - null, 미국, 영미권 - )); - - 영미권_미국_네바다주립대학_라스베이거스 = universityRepository.save(new University( - null, "네바다주립대학 라스베이거스", "University of Nevada, Las Vegas", "university_of_nevada_las_vegas", - "https://www.unlv.edu/engineering/eip", - "https://www.unlv.edu/engineering/academic-programs", - "https://www.unlv.edu/housing", - "https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/university_of_nevada_las_vegas/logo.png", - "https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/university_of_nevada_las_vegas/1.png", - null, 미국, 영미권 - )); - - 영미권_캐나다_메모리얼대학_세인트존스 = universityRepository.save(new University( - null, "메모리얼 대학 세인트존스", "Memorial University of Newfoundland St. John's", "memorial_university_of_newfoundland_st_johns", - "https://mun.ca/goabroad/visiting-students-inbound/", - "https://www.unlv.edu/engineering/academic-programs", - "https://www.mun.ca/residences/", - "https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/memorial_university_of_newfoundland_st_johns/logo.png", - "https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/memorial_university_of_newfoundland_st_johns/1.png", - null, 캐나다, 영미권 - )); - - 유럽_덴마크_서던덴마크대학교 = universityRepository.save(new University( - null, "서던덴마크대학교", "University of Southern Denmark", "university_of_southern_denmark", - "https://www.sdu.dk/en", - "https://www.sdu.dk/en", - "https://www.sdu.dk/en/uddannelse/information_for_international_students/studenthousing", - "https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/university_of_southern_denmark/logo.png", - "https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/university_of_southern_denmark/1.png", - null, 덴마크, 유럽 - )); - - 유럽_덴마크_코펜하겐IT대학 = universityRepository.save(new University( - null, "코펜하겐 IT대학", "IT University of Copenhagen", "it_university_of_copenhagen", - "https://en.itu.dk/", null, - "https://en.itu.dk/Programmes/Student-Life/Practical-information-for-international-students", - "https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/it_university_of_copenhagen/logo.png", - "https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/it_university_of_copenhagen/1.png", - null, 덴마크, 유럽 - )); - - 유럽_오스트리아_그라츠대학 = universityRepository.save(new University( - null, "그라츠 대학", "University of Graz", "university_of_graz", - "https://www.uni-graz.at/en/", - "https://static.uni-graz.at/fileadmin/veranstaltungen/orientation/documents/incstud_application-courses.pdf", - "https://orientation.uni-graz.at/de/planning-the-arrival/accommodation/", - "https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/university_of_graz/logo.png", - "https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/university_of_graz/1.png", - null, 오스트리아, 유럽 - )); - - 유럽_오스트리아_그라츠공과대학 = universityRepository.save(new University( - null, "그라츠공과대학", "Graz University of Technology", "graz_university_of_technology", - "https://www.tugraz.at/en/home", null, - "https://www.tugraz.at/en/studying-and-teaching/studying-internationally/incoming-students-exchange-at-tu-graz/your-stay-at-tu-graz/preparation#c75033", - "https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/graz_university_of_technology/logo.png", - "https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/graz_university_of_technology/1.png", - null, 오스트리아, 유럽 - )); - - 유럽_오스트리아_린츠_카톨릭대학 = universityRepository.save(new University( - null, "린츠 카톨릭 대학교", "Catholic Private University Linz", "catholic_private_university_linz", - "https://ku-linz.at/en", null, - "https://ku-linz.at/en/ku_international/incomings/kulis", - "https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/catholic_private_university_linz/logo.png", - "https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/catholic_private_university_linz/1.png", - null, 오스트리아, 유럽 - )); - - 아시아_일본_메이지대학 = universityRepository.save(new University( - null, "메이지대학", "Meiji University", "meiji_university", - "https://www.meiji.ac.jp/cip/english/admissions/co7mm90000000461-att/co7mm900000004fa.pdf", null, - "https://www.meiji.ac.jp/cip/english/admissions/co7mm90000000461-att/co7mm900000004fa.pdf", - "https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/meiji_university/logo.png", - "https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/meiji_university/1.png", - null, 일본, 아시아 - )); - } - - private void setUpUniversityInfos() { - 괌대학_A_지원_정보 = universityInfoForApplyRepository.save(new UniversityInfoForApply( - null, term, "괌대학(A형)", 1, HOME_UNIVERSITY_PAYMENT, ONE_SEMESTER, - "1", "detailsForLanguage", "gpaRequirement", - "gpaRequirementCriteria", "detailsForApply", "detailsForMajor", - "detailsForAccommodation", "detailsForEnglishCourse", "details", - new HashSet<>(), 영미권_미국_괌대학 - )); - - 괌대학_B_지원_정보 = universityInfoForApplyRepository.save(new UniversityInfoForApply( - null, term, "괌대학(B형)", 1, HOME_UNIVERSITY_PAYMENT, ONE_SEMESTER, - "1", "detailsForLanguage", "gpaRequirement", - "gpaRequirementCriteria", "detailsForApply", "detailsForMajor", - "detailsForAccommodation", "detailsForEnglishCourse", "details", - new HashSet<>(), 영미권_미국_괌대학 - )); - - 네바다주립대학_라스베이거스_지원_정보 = universityInfoForApplyRepository.save(new UniversityInfoForApply( - null, term, "네바다주립대학 라스베이거스(B형)", 1, HOME_UNIVERSITY_PAYMENT, ONE_SEMESTER, - "1", "detailsForLanguage", "gpaRequirement", - "gpaRequirementCriteria", "detailsForApply", "detailsForMajor", - "detailsForAccommodation", "detailsForEnglishCourse", "details", - new HashSet<>(), 영미권_미국_네바다주립대학_라스베이거스 - )); - - 메모리얼대학_세인트존스_A_지원_정보 = universityInfoForApplyRepository.save(new UniversityInfoForApply( - null, term, "메모리얼 대학 세인트존스(A형)", 1, HOME_UNIVERSITY_PAYMENT, ONE_SEMESTER, - "1", "detailsForLanguage", "gpaRequirement", - "gpaRequirementCriteria", "detailsForApply", "detailsForMajor", - "detailsForAccommodation", "detailsForEnglishCourse", "details", - new HashSet<>(), 영미권_캐나다_메모리얼대학_세인트존스 - )); - - 서던덴마크대학교_지원_정보 = universityInfoForApplyRepository.save(new UniversityInfoForApply( - null, term, "서던덴마크대학교", 1, HOME_UNIVERSITY_PAYMENT, ONE_SEMESTER, - "1", "detailsForLanguage", "gpaRequirement", - "gpaRequirementCriteria", "detailsForApply", "detailsForMajor", - "detailsForAccommodation", "detailsForEnglishCourse", "details", - new HashSet<>(), 유럽_덴마크_서던덴마크대학교 - )); - - 코펜하겐IT대학_지원_정보 = universityInfoForApplyRepository.save(new UniversityInfoForApply( - null, term, "코펜하겐 IT대학", 1, HOME_UNIVERSITY_PAYMENT, ONE_SEMESTER, - "1", "detailsForLanguage", "gpaRequirement", - "gpaRequirementCriteria", "detailsForApply", "detailsForMajor", - "detailsForAccommodation", "detailsForEnglishCourse", "details", - new HashSet<>(), 유럽_덴마크_코펜하겐IT대학 - )); - - 그라츠대학_지원_정보 = universityInfoForApplyRepository.save(new UniversityInfoForApply( - null, term, "그라츠 대학", 1, HOME_UNIVERSITY_PAYMENT, ONE_SEMESTER, - "1", "detailsForLanguage", "gpaRequirement", - "gpaRequirementCriteria", "detailsForApply", "detailsForMajor", - "detailsForAccommodation", "detailsForEnglishCourse", "details", - new HashSet<>(), 유럽_오스트리아_그라츠대학 - )); - - 그라츠공과대학_지원_정보 = universityInfoForApplyRepository.save(new UniversityInfoForApply( - null, term, "그라츠공과대학", 1, HOME_UNIVERSITY_PAYMENT, ONE_SEMESTER, - "1", "detailsForLanguage", "gpaRequirement", - "gpaRequirementCriteria", "detailsForApply", "detailsForMajor", - "detailsForAccommodation", "detailsForEnglishCourse", "details", - new HashSet<>(), 유럽_오스트리아_그라츠공과대학 - )); - - 린츠_카톨릭대학_지원_정보 = universityInfoForApplyRepository.save(new UniversityInfoForApply( - null, term, "린츠 카톨릭 대학교", 1, HOME_UNIVERSITY_PAYMENT, ONE_SEMESTER, - "1", "detailsForLanguage", "gpaRequirement", - "gpaRequirementCriteria", "detailsForApply", "detailsForMajor", - "detailsForAccommodation", "detailsForEnglishCourse", "details", - new HashSet<>(), 유럽_오스트리아_린츠_카톨릭대학 - )); - - 메이지대학_지원_정보 = universityInfoForApplyRepository.save(new UniversityInfoForApply( - null, term, "메이지대학", 1, HOME_UNIVERSITY_PAYMENT, ONE_SEMESTER, - "1", "detailsForLanguage", "gpaRequirement", - "gpaRequirementCriteria", "detailsForApply", "detailsForMajor", - "detailsForAccommodation", "detailsForEnglishCourse", "details", - new HashSet<>(), 아시아_일본_메이지대학 - )); - } - - private void setUpLanguageRequirements() { - saveLanguageTestRequirement(괌대학_A_지원_정보, LanguageTestType.TOEFL_IBT, "80"); - saveLanguageTestRequirement(괌대학_A_지원_정보, LanguageTestType.TOEIC, "800"); - saveLanguageTestRequirement(괌대학_B_지원_정보, LanguageTestType.TOEFL_IBT, "70"); - saveLanguageTestRequirement(괌대학_B_지원_정보, LanguageTestType.TOEIC, "900"); - saveLanguageTestRequirement(네바다주립대학_라스베이거스_지원_정보, LanguageTestType.TOEIC, "800"); - saveLanguageTestRequirement(메모리얼대학_세인트존스_A_지원_정보, LanguageTestType.TOEIC, "800"); - saveLanguageTestRequirement(서던덴마크대학교_지원_정보, LanguageTestType.TOEFL_IBT, "70"); - saveLanguageTestRequirement(코펜하겐IT대학_지원_정보, LanguageTestType.TOEFL_IBT, "80"); - saveLanguageTestRequirement(그라츠대학_지원_정보, LanguageTestType.TOEFL_IBT, "80"); - saveLanguageTestRequirement(그라츠공과대학_지원_정보, LanguageTestType.TOEIC, "800"); - saveLanguageTestRequirement(린츠_카톨릭대학_지원_정보, LanguageTestType.TOEIC, "800"); - saveLanguageTestRequirement(메이지대학_지원_정보, LanguageTestType.JLPT, "N2"); - } - - private void saveLanguageTestRequirement( - UniversityInfoForApply universityInfoForApply, - LanguageTestType testType, - String minScore - ) { - LanguageRequirement languageRequirement = new LanguageRequirement( - null, - testType, - minScore, - universityInfoForApply); - universityInfoForApply.addLanguageRequirements(languageRequirement); - universityInfoForApplyRepository.save(universityInfoForApply); - languageRequirementRepository.save(languageRequirement); - } -} diff --git a/src/test/java/com/example/solidconnection/university/service/UniversityLikeServiceTest.java b/src/test/java/com/example/solidconnection/university/service/UniversityLikeServiceTest.java index f94dfb21c..14371486c 100644 --- a/src/test/java/com/example/solidconnection/university/service/UniversityLikeServiceTest.java +++ b/src/test/java/com/example/solidconnection/university/service/UniversityLikeServiceTest.java @@ -17,7 +17,6 @@ import org.springframework.beans.factory.annotation.Autowired; import static com.example.solidconnection.custom.exception.ErrorCode.UNIVERSITY_INFO_FOR_APPLY_NOT_FOUND; -import static com.example.solidconnection.support.integration.TestDataSetUpHelper.괌대학_A_지원_정보; import static com.example.solidconnection.university.service.UniversityLikeService.LIKE_CANCELED_MESSAGE; import static com.example.solidconnection.university.service.UniversityLikeService.LIKE_SUCCESS_MESSAGE; import static org.assertj.core.api.Assertions.assertThat; diff --git a/src/test/java/com/example/solidconnection/university/service/UniversityQueryServiceTest.java b/src/test/java/com/example/solidconnection/university/service/UniversityQueryServiceTest.java index a22c91874..1cd0d755f 100644 --- a/src/test/java/com/example/solidconnection/university/service/UniversityQueryServiceTest.java +++ b/src/test/java/com/example/solidconnection/university/service/UniversityQueryServiceTest.java @@ -17,19 +17,6 @@ import java.util.List; -import static com.example.solidconnection.support.integration.TestDataSetUpHelper.괌대학_A_지원_정보; -import static com.example.solidconnection.support.integration.TestDataSetUpHelper.괌대학_B_지원_정보; -import static com.example.solidconnection.support.integration.TestDataSetUpHelper.그라츠공과대학_지원_정보; -import static com.example.solidconnection.support.integration.TestDataSetUpHelper.그라츠대학_지원_정보; -import static com.example.solidconnection.support.integration.TestDataSetUpHelper.네바다주립대학_라스베이거스_지원_정보; -import static com.example.solidconnection.support.integration.TestDataSetUpHelper.린츠_카톨릭대학_지원_정보; -import static com.example.solidconnection.support.integration.TestDataSetUpHelper.메모리얼대학_세인트존스_A_지원_정보; -import static com.example.solidconnection.support.integration.TestDataSetUpHelper.메이지대학_지원_정보; -import static com.example.solidconnection.support.integration.TestDataSetUpHelper.미국; -import static com.example.solidconnection.support.integration.TestDataSetUpHelper.서던덴마크대학교_지원_정보; -import static com.example.solidconnection.support.integration.TestDataSetUpHelper.영미권; -import static com.example.solidconnection.support.integration.TestDataSetUpHelper.영미권_미국_괌대학; -import static com.example.solidconnection.support.integration.TestDataSetUpHelper.코펜하겐IT대학_지원_정보; import static org.assertj.core.api.AssertionsForClassTypes.assertThatExceptionOfType; import static com.example.solidconnection.custom.exception.ErrorCode.UNIVERSITY_INFO_FOR_APPLY_NOT_FOUND; import static org.assertj.core.api.Assertions.assertThat; diff --git a/src/test/java/com/example/solidconnection/university/service/UniversityRecommendServiceTest.java b/src/test/java/com/example/solidconnection/university/service/UniversityRecommendServiceTest.java index 1b3a0a068..cadd45aaf 100644 --- a/src/test/java/com/example/solidconnection/university/service/UniversityRecommendServiceTest.java +++ b/src/test/java/com/example/solidconnection/university/service/UniversityRecommendServiceTest.java @@ -19,14 +19,6 @@ import java.util.List; -import static com.example.solidconnection.support.integration.TestDataSetUpHelper.괌대학_A_지원_정보; -import static com.example.solidconnection.support.integration.TestDataSetUpHelper.괌대학_B_지원_정보; -import static com.example.solidconnection.support.integration.TestDataSetUpHelper.네바다주립대학_라스베이거스_지원_정보; -import static com.example.solidconnection.support.integration.TestDataSetUpHelper.덴마크; -import static com.example.solidconnection.support.integration.TestDataSetUpHelper.메모리얼대학_세인트존스_A_지원_정보; -import static com.example.solidconnection.support.integration.TestDataSetUpHelper.서던덴마크대학교_지원_정보; -import static com.example.solidconnection.support.integration.TestDataSetUpHelper.영미권; -import static com.example.solidconnection.support.integration.TestDataSetUpHelper.코펜하겐IT대학_지원_정보; import static com.example.solidconnection.university.service.UniversityRecommendService.RECOMMEND_UNIVERSITY_NUM; import static org.assertj.core.api.Assertions.assertThat; @@ -50,7 +42,6 @@ class UniversityRecommendServiceTest extends BaseIntegrationTest { @BeforeEach void setUp() { - super.setUpBaseData(); generalRecommendUniversities.init(); } @@ -65,7 +56,7 @@ void setUp() { // then assertThat(response.recommendedUniversities()) - .hasSize(RECOMMEND_UNIVERSITY_NUM).usingRecursiveFieldByFieldElementComparatorIgnoringFields("id") + .hasSize(RECOMMEND_UNIVERSITY_NUM) .containsAll(List.of( UniversityInfoForApplyPreviewResponse.from(괌대학_A_지원_정보), UniversityInfoForApplyPreviewResponse.from(괌대학_B_지원_정보), @@ -104,7 +95,7 @@ void setUp() { // then assertThat(response.recommendedUniversities()) - .hasSize(RECOMMEND_UNIVERSITY_NUM).usingRecursiveFieldByFieldElementComparatorIgnoringFields("id") + .hasSize(RECOMMEND_UNIVERSITY_NUM) .containsExactlyInAnyOrder( UniversityInfoForApplyPreviewResponse.from(괌대학_A_지원_정보), UniversityInfoForApplyPreviewResponse.from(괌대학_B_지원_정보),