From f779fc13a333ccf9416593f87fc0446c4afeaa47 Mon Sep 17 00:00:00 2001 From: sewon Date: Sat, 24 Aug 2024 20:59:05 +0900 Subject: [PATCH 1/9] =?UTF-8?q?feat:=20Application=EC=97=90=20term=20?= =?UTF-8?q?=ED=95=84=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 --- .../application/domain/Application.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/example/solidconnection/application/domain/Application.java b/src/main/java/com/example/solidconnection/application/domain/Application.java index 44dcc52f1..c87a73279 100644 --- a/src/main/java/com/example/solidconnection/application/domain/Application.java +++ b/src/main/java/com/example/solidconnection/application/domain/Application.java @@ -48,6 +48,9 @@ public class Application { @Column(columnDefinition = "int not null default 0") private Integer updateCount; + @Column(length = 50, nullable = false) + private String term; + @ManyToOne private UniversityInfoForApply firstChoiceUniversity; @@ -60,13 +63,16 @@ public class Application { @ManyToOne private SiteUser siteUser; + // deprecate 시켜보자. public Application( SiteUser siteUser, Gpa gpa, - LanguageTest languageTest) { + LanguageTest languageTest, + String term) { this.siteUser = siteUser; this.gpa = gpa; this.languageTest = languageTest; + this.term = term; } public void updateGpaAndLanguageTest( @@ -90,4 +96,9 @@ public void updateUniversityChoice( this.thirdChoiceUniversity = thirdChoiceUniversity; this.nicknameForApply = nicknameForApply; } + + public void updateTerm( + String term) { + this.term = term; + } } From 742d7b4717da857dc9ce6fe59c183c0864395bf7 Mon Sep 17 00:00:00 2001 From: sewon Date: Sat, 24 Aug 2024 21:03:11 +0900 Subject: [PATCH 2/9] =?UTF-8?q?feat:=20=EC=A7=80=EC=9B=90=EC=8B=9C=20term?= =?UTF-8?q?=20=EC=A0=80=EC=9E=A5=ED=95=98=EB=8A=94=20=EB=A1=9C=EC=A7=81=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/service/ApplicationSubmissionService.java | 8 ++++++-- .../solidconnection/e2e/ApplicationSubmissionTest.java | 8 ++++---- .../solidconnection/e2e/VerifyStatusQueryTest.java | 8 ++++---- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/example/solidconnection/application/service/ApplicationSubmissionService.java b/src/main/java/com/example/solidconnection/application/service/ApplicationSubmissionService.java index beec76a05..a36aea97f 100644 --- a/src/main/java/com/example/solidconnection/application/service/ApplicationSubmissionService.java +++ b/src/main/java/com/example/solidconnection/application/service/ApplicationSubmissionService.java @@ -51,11 +51,14 @@ public boolean submitScore(String email, ScoreRequest scoreRequest) { applicationRepository.findBySiteUser_Email(email) .ifPresentOrElse( // 수정 - application -> application.updateGpaAndLanguageTest(gpa, languageTest), + application -> { + application.updateGpaAndLanguageTest(gpa, languageTest); + application.updateTerm(term); + }, // 최초 등록 () -> applicationRepository.save( - new Application(siteUser, gpa, languageTest) + new Application(siteUser, gpa, languageTest, term) ) ); return true; @@ -85,6 +88,7 @@ public boolean submitUniversityChoice(String email, UniversityChoiceRequest univ validateUpdateLimitNotExceed(application); application.updateUniversityChoice(firstChoiceUniversity, secondChoiceUniversity, thirdChoiceUniversity, getRandomNickname()); + application.updateTerm(term); return true; } diff --git a/src/test/java/com/example/solidconnection/e2e/ApplicationSubmissionTest.java b/src/test/java/com/example/solidconnection/e2e/ApplicationSubmissionTest.java index 0cbe37f35..52808c5ac 100644 --- a/src/test/java/com/example/solidconnection/e2e/ApplicationSubmissionTest.java +++ b/src/test/java/com/example/solidconnection/e2e/ApplicationSubmissionTest.java @@ -84,7 +84,7 @@ public void setUpUserAndToken() { // setUp - 성적 정보 저장 ScoreRequest firstRequest = new ScoreRequest(LanguageTestType.TOEFL_IBT, "80", "languageTestReportUrl", 4.0, 4.5, "gpaReportUrl"); - applicationRepository.save(new Application(siteUser, firstRequest.toGpa(), firstRequest.toLanguageTest())); + applicationRepository.save(new Application(siteUser, firstRequest.toGpa(), firstRequest.toLanguageTest(),term)); // request - body 생성 및 요청 ScoreRequest secondRequest = new ScoreRequest(LanguageTestType.TOEFL_IBT, "90", @@ -116,7 +116,7 @@ public void setUpUserAndToken() { // setUp - 성적 정보 저장 ScoreRequest firstRequest = new ScoreRequest(LanguageTestType.TOEFL_IBT, "80", "languageTestReportUrl", 4.0, 4.5, "gpaReportUrl"); - applicationRepository.save(new Application(siteUser, firstRequest.toGpa(), firstRequest.toLanguageTest())); + applicationRepository.save(new Application(siteUser, firstRequest.toGpa(), firstRequest.toLanguageTest(),term)); // request - body 생성 및 요청 UniversityChoiceRequest request = new UniversityChoiceRequest(그라츠대학_지원_정보.getId(), 코펜하겐IT대학_지원_정보.getId(), 메이지대학_지원_정보.getId()); @@ -146,7 +146,7 @@ public void setUpUserAndToken() { // setUp - 성적 정보와 지망 대학 저장 ScoreRequest firstRequest = new ScoreRequest(LanguageTestType.TOEFL_IBT, "80", "languageTestReportUrl", 4.0, 4.5, "gpaReportUrl"); - applicationRepository.save(new Application(siteUser, firstRequest.toGpa(), firstRequest.toLanguageTest())) + applicationRepository.save(new Application(siteUser, firstRequest.toGpa(), firstRequest.toLanguageTest(),term)) .updateUniversityChoice(괌대학_A_지원_정보, 괌대학_B_지원_정보, 네바다주립대학_라스베이거스_지원_정보, "nickname"); Application initialApplication = applicationRepository.getApplicationBySiteUser(siteUser); @@ -178,7 +178,7 @@ public void setUpUserAndToken() { // setUp - 성적 정보와 지망 대학 저장 ScoreRequest firstRequest = new ScoreRequest(LanguageTestType.TOEFL_IBT, "80", "languageTestReportUrl", 4.0, 4.5, "gpaReportUrl"); - applicationRepository.save(new Application(siteUser, firstRequest.toGpa(), firstRequest.toLanguageTest())); + applicationRepository.save(new Application(siteUser, firstRequest.toGpa(), firstRequest.toLanguageTest(),term)); Application initialApplication = applicationRepository.getApplicationBySiteUser(siteUser); // setUp - 지망 대학을 한계까지 수정 diff --git a/src/test/java/com/example/solidconnection/e2e/VerifyStatusQueryTest.java b/src/test/java/com/example/solidconnection/e2e/VerifyStatusQueryTest.java index b4447247a..856c4cdca 100644 --- a/src/test/java/com/example/solidconnection/e2e/VerifyStatusQueryTest.java +++ b/src/test/java/com/example/solidconnection/e2e/VerifyStatusQueryTest.java @@ -66,7 +66,7 @@ public void setUpUserAndToken() { @Test void 성적만_제출한_상태를_반환한다() { // setUp - 성적만 제출한 상태 - Application application = new Application(siteUser, createDummyGpa(), createDummyLanguageTest()); + Application application = new Application(siteUser, createDummyGpa(), createDummyLanguageTest(),term); applicationRepository.save(application); // request - 요청 @@ -86,7 +86,7 @@ public void setUpUserAndToken() { @Test void 성적과_대학을_모두_제출하고_승인을_기대라는_상태를_반환한다() { // setUp - 성적과 대학을 모두 제출한 상태 - Application application = new Application(siteUser, createDummyGpa(), createDummyLanguageTest()); + Application application = new Application(siteUser, createDummyGpa(), createDummyLanguageTest(),term); application.updateUniversityChoice(괌대학_B_지원_정보, 괌대학_A_지원_정보, 네바다주립대학_라스베이거스_지원_정보, "닉네임"); applicationRepository.save(application); @@ -107,7 +107,7 @@ public void setUpUserAndToken() { @Test void 성적과_대학을_모두_제출했지만_승인이_반려된_상태를_반환한다() { // setUp - 성적과 대학을 모두 제출했지만, 승인 거절 - Application application = new Application(siteUser, createDummyGpa(), createDummyLanguageTest()); + Application application = new Application(siteUser, createDummyGpa(), createDummyLanguageTest(),term); application.updateUniversityChoice(괌대학_B_지원_정보, 괌대학_A_지원_정보, 네바다주립대학_라스베이거스_지원_정보,"닉네임"); application.setVerifyStatus(VerifyStatus.REJECTED); applicationRepository.save(application); @@ -129,7 +129,7 @@ public void setUpUserAndToken() { @Test void 성적과_대학을_모두_제출했으며_승인이_된_상태를_반환한다() { // setUp - 성적과 대학을 모두 제출했으며, 승인이 된 상태 - Application application = new Application(siteUser, createDummyGpa(), createDummyLanguageTest()); + Application application = new Application(siteUser, createDummyGpa(), createDummyLanguageTest(),term); application.updateUniversityChoice(괌대학_B_지원_정보, 괌대학_A_지원_정보, 네바다주립대학_라스베이거스_지원_정보, "닉네임"); application.setVerifyStatus(VerifyStatus.APPROVED); applicationRepository.save(application); From 227861672bbdbad369139b7aaf17b9354867822a Mon Sep 17 00:00:00 2001 From: sewon Date: Sat, 24 Aug 2024 21:04:11 +0900 Subject: [PATCH 3/9] =?UTF-8?q?refactor:=20=EC=84=B1=EC=A0=81=20=EA=B3=B5?= =?UTF-8?q?=EC=9C=A0=20=EB=AA=A9=EB=A1=9D=20=ED=99=95=EC=9D=B8=EC=8B=9C=20?= =?UTF-8?q?=ED=98=84=EC=9E=AC=20term=EB=A7=8C=20=EC=A1=B0=ED=9A=8C?= =?UTF-8?q?=ED=95=98=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/ApplicationRepository.java | 6 +-- .../service/ApplicationQueryService.java | 20 ++++---- .../e2e/ApplicantsQueryTest.java | 49 +++++++++++++++++-- 3 files changed, 57 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/example/solidconnection/application/repository/ApplicationRepository.java b/src/main/java/com/example/solidconnection/application/repository/ApplicationRepository.java index 34b714438..d88fbf076 100644 --- a/src/main/java/com/example/solidconnection/application/repository/ApplicationRepository.java +++ b/src/main/java/com/example/solidconnection/application/repository/ApplicationRepository.java @@ -22,11 +22,11 @@ public interface ApplicationRepository extends JpaRepository Optional findBySiteUser(SiteUser siteUser); - List findAllByFirstChoiceUniversityAndVerifyStatus(UniversityInfoForApply firstChoiceUniversity, VerifyStatus verifyStatus); + List findAllByFirstChoiceUniversityAndVerifyStatusAndTerm(UniversityInfoForApply firstChoiceUniversity, VerifyStatus verifyStatus, String term); - List findAllBySecondChoiceUniversityAndVerifyStatus(UniversityInfoForApply secondChoiceUniversity, VerifyStatus verifyStatus); + List findAllBySecondChoiceUniversityAndVerifyStatusAndTerm(UniversityInfoForApply secondChoiceUniversity, VerifyStatus verifyStatus, String term); - List findAllByThirdChoiceUniversityAndVerifyStatus(UniversityInfoForApply thirdChoiceUniversity, VerifyStatus verifyStatus); + List findAllByThirdChoiceUniversityAndVerifyStatusAndTerm(UniversityInfoForApply thirdChoiceUniversity, VerifyStatus verifyStatus, String term); default Application getApplicationBySiteUser(SiteUser siteUser) { return findBySiteUser(siteUser) diff --git a/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java b/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java index 793cf28ca..77b2e93dd 100644 --- a/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java +++ b/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java @@ -52,10 +52,10 @@ public ApplicationsResponse getApplicants(String email, String regionCode, Strin List universities = universityFilterRepository.findByRegionCodeAndKeywords(regionCode, List.of(keyword)); - // 1지망, 2지망 지원자들을 조회한다. - List firstChoiceApplicants = getFirstChoiceApplicants(universities, siteUser); - List secondChoiceApplicants = getSecondChoiceApplicants(universities, siteUser); - List thirdChoiceApplicants = getThirdChoiceApplicants(universities, siteUser); + // 1지망, 2지망, 3지망 지원자들을 조회한다. + List firstChoiceApplicants = getFirstChoiceApplicants(universities, siteUser, term); + List secondChoiceApplicants = getSecondChoiceApplicants(universities, siteUser, term); + List thirdChoiceApplicants = getThirdChoiceApplicants(universities, siteUser, term); return new ApplicationsResponse(firstChoiceApplicants, secondChoiceApplicants, thirdChoiceApplicants); } @@ -66,27 +66,27 @@ private void validateSiteUserCanViewApplicants(SiteUser siteUser) { } } - private List getFirstChoiceApplicants(List universities, SiteUser siteUser) { + private List getFirstChoiceApplicants(List universities, SiteUser siteUser, String term) { return getApplicantsByChoice( universities, siteUser, - uia -> applicationRepository.findAllByFirstChoiceUniversityAndVerifyStatus(uia, VerifyStatus.APPROVED) + uia -> applicationRepository.findAllByFirstChoiceUniversityAndVerifyStatusAndTerm(uia, VerifyStatus.APPROVED, term) ); } - private List getSecondChoiceApplicants(List universities, SiteUser siteUser) { + private List getSecondChoiceApplicants(List universities, SiteUser siteUser, String term) { return getApplicantsByChoice( universities, siteUser, - uia -> applicationRepository.findAllBySecondChoiceUniversityAndVerifyStatus(uia, VerifyStatus.APPROVED) + uia -> applicationRepository.findAllBySecondChoiceUniversityAndVerifyStatusAndTerm(uia, VerifyStatus.APPROVED, term) ); } - private List getThirdChoiceApplicants(List universities, SiteUser siteUser) { + private List getThirdChoiceApplicants(List universities, SiteUser siteUser, String term) { return getApplicantsByChoice( universities, siteUser, - uia -> applicationRepository.findAllByThirdChoiceUniversityAndVerifyStatus(uia, VerifyStatus.APPROVED) + uia -> applicationRepository.findAllByThirdChoiceUniversityAndVerifyStatusAndTerm(uia, VerifyStatus.APPROVED, term) ); } diff --git a/src/test/java/com/example/solidconnection/e2e/ApplicantsQueryTest.java b/src/test/java/com/example/solidconnection/e2e/ApplicantsQueryTest.java index d609aa121..cb5fbfe52 100644 --- a/src/test/java/com/example/solidconnection/e2e/ApplicantsQueryTest.java +++ b/src/test/java/com/example/solidconnection/e2e/ApplicantsQueryTest.java @@ -17,6 +17,7 @@ import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import java.util.List; @@ -42,6 +43,11 @@ class ApplicantsQueryTest extends UniversityDataSetUpEndToEndTest { private Application 사용자1_지원정보; private Application 사용자2_지원정보; private Application 사용자3_지원정보; + private Application 사용자4_이전학기_지원정보; + + @Value("${university.term}") + private String term; + private String beforeTerm = "1988-1"; @BeforeEach public void setUpUserAndToken() { @@ -58,23 +64,27 @@ public void setUpUserAndToken() { SiteUser 사용자1 = siteUserRepository.save(createSiteUserByEmail("email1")); SiteUser 사용자2 = siteUserRepository.save(createSiteUserByEmail("email2")); SiteUser 사용자3 = siteUserRepository.save(createSiteUserByEmail("email3")); + SiteUser 사용자4_이전학기_지원자 = siteUserRepository.save(createSiteUserByEmail("email4")); // setUp - 지원 정보 저장 Gpa gpa = createDummyGpa(); LanguageTest languageTest = createDummyLanguageTest(); - 나의_지원정보 = new Application(siteUser, gpa, languageTest); - 사용자1_지원정보 = new Application(사용자1, gpa, languageTest); - 사용자2_지원정보 = new Application(사용자2, gpa, languageTest); - 사용자3_지원정보 = new Application(사용자3, gpa, languageTest); + 나의_지원정보 = new Application(siteUser, gpa, languageTest, term); + 사용자1_지원정보 = new Application(사용자1, gpa, languageTest, term); + 사용자2_지원정보 = new Application(사용자2, gpa, languageTest, term); + 사용자3_지원정보 = new Application(사용자3, gpa, languageTest, term); + 사용자4_이전학기_지원정보 = new Application(사용자4_이전학기_지원자, gpa, languageTest, beforeTerm); 나의_지원정보.updateUniversityChoice(괌대학_B_지원_정보, 괌대학_A_지원_정보, 린츠_카톨릭대학_지원_정보, "0"); 사용자1_지원정보.updateUniversityChoice(괌대학_A_지원_정보, 괌대학_B_지원_정보, 그라츠공과대학_지원_정보, "1"); 사용자2_지원정보.updateUniversityChoice(메이지대학_지원_정보, 그라츠대학_지원_정보, 서던덴마크대학교_지원_정보, "2"); 사용자3_지원정보.updateUniversityChoice(네바다주립대학_라스베이거스_지원_정보, 그라츠공과대학_지원_정보, 메이지대학_지원_정보, "3"); + 사용자4_이전학기_지원정보.updateUniversityChoice(네바다주립대학_라스베이거스_지원_정보, 그라츠공과대학_지원_정보, 메이지대학_지원_정보, "4"); 나의_지원정보.setVerifyStatus(VerifyStatus.APPROVED); 사용자1_지원정보.setVerifyStatus(VerifyStatus.APPROVED); 사용자2_지원정보.setVerifyStatus(VerifyStatus.APPROVED); 사용자3_지원정보.setVerifyStatus(VerifyStatus.APPROVED); - applicationRepository.saveAll(List.of(나의_지원정보, 사용자1_지원정보, 사용자2_지원정보, 사용자3_지원정보)); + 사용자4_이전학기_지원정보.setVerifyStatus(VerifyStatus.APPROVED); + applicationRepository.saveAll(List.of(나의_지원정보, 사용자1_지원정보, 사용자2_지원정보, 사용자3_지원정보, 사용자4_이전학기_지원정보)); } @Test @@ -195,4 +205,33 @@ public void setUpUserAndToken() { assertThat(secondChoiceApplicants).containsExactlyInAnyOrder( UniversityApplicantsResponse.of(메이지대학_지원_정보, List.of())); } + + @Test + void 지원자를_조회할_때_이전학기_지원자는_조회되지_않는다() { + ApplicationsResponse response = RestAssured.given().log().all() + .header("Authorization", "Bearer " + accessToken) + .when().log().all() + .get("/application") + .then().log().all() + .statusCode(200) + .extract().as(ApplicationsResponse.class); + + List firstChoiceApplicants = response.firstChoice(); + List secondChoiceApplicants = response.secondChoice(); + List thirdChoiceApplicants = response.thirdChoice(); + + + assertThat(firstChoiceApplicants).doesNotContainAnyElementsOf(List.of( + UniversityApplicantsResponse.of(네바다주립대학_라스베이거스_지원_정보, + List.of(ApplicantResponse.of(사용자4_이전학기_지원정보, false))) + )); + assertThat(secondChoiceApplicants).doesNotContainAnyElementsOf(List.of( + UniversityApplicantsResponse.of(네바다주립대학_라스베이거스_지원_정보, + List.of(ApplicantResponse.of(사용자4_이전학기_지원정보, false))) + )); + assertThat(thirdChoiceApplicants).doesNotContainAnyElementsOf(List.of( + UniversityApplicantsResponse.of(네바다주립대학_라스베이거스_지원_정보, + List.of(ApplicantResponse.of(사용자4_이전학기_지원정보, false))) + )); + } } From 83ec93caca79a454c0d6178ecf3401b23029cea7 Mon Sep 17 00:00:00 2001 From: sewon Date: Sat, 24 Aug 2024 21:05:08 +0900 Subject: [PATCH 4/9] =?UTF-8?q?refactor:=20UniversityApplicantsResponse=20?= =?UTF-8?q?=EB=B0=98=ED=99=98=EA=B0=92=20universityInfoForApply.getKoreanN?= =?UTF-8?q?ame()=EB=A1=9C=20=EC=88=98=EC=A0=95=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/dto/UniversityApplicantsResponse.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/example/solidconnection/application/dto/UniversityApplicantsResponse.java b/src/main/java/com/example/solidconnection/application/dto/UniversityApplicantsResponse.java index a78c98c20..84751786b 100644 --- a/src/main/java/com/example/solidconnection/application/dto/UniversityApplicantsResponse.java +++ b/src/main/java/com/example/solidconnection/application/dto/UniversityApplicantsResponse.java @@ -25,7 +25,7 @@ public record UniversityApplicantsResponse( public static UniversityApplicantsResponse of(UniversityInfoForApply universityInfoForApply, List applicant) { return new UniversityApplicantsResponse( - universityInfoForApply.getUniversity().getKoreanName(), + universityInfoForApply.getKoreanName(), universityInfoForApply.getStudentCapacity(), universityInfoForApply.getUniversity().getRegion().getKoreanName(), universityInfoForApply.getUniversity().getCountry().getKoreanName(), From 5908c16f9c7cb66a7271ab04b59f14333439bcc7 Mon Sep 17 00:00:00 2001 From: sewon Date: Sun, 25 Aug 2024 13:26:24 +0900 Subject: [PATCH 5/9] =?UTF-8?q?refactor:=20=ED=95=99=EA=B8=B0=EB=B3=84?= =?UTF-8?q?=EB=A1=9C=20=EC=9C=A0=EC=A0=80=EA=B0=80=20application=EC=9D=84?= =?UTF-8?q?=20=EA=B0=80=EC=A7=88=20=EC=88=98=20=EC=9E=88=EB=8F=84=EB=A1=9D?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/domain/Application.java | 8 +--- .../service/ApplicationSubmissionService.java | 45 ++++++++++--------- .../service/UniversityRecommendService.java | 2 +- .../e2e/ApplicationSubmissionTest.java | 12 ++--- 4 files changed, 33 insertions(+), 34 deletions(-) diff --git a/src/main/java/com/example/solidconnection/application/domain/Application.java b/src/main/java/com/example/solidconnection/application/domain/Application.java index c87a73279..085141f22 100644 --- a/src/main/java/com/example/solidconnection/application/domain/Application.java +++ b/src/main/java/com/example/solidconnection/application/domain/Application.java @@ -63,7 +63,6 @@ public class Application { @ManyToOne private SiteUser siteUser; - // deprecate 시켜보자. public Application( SiteUser siteUser, Gpa gpa, @@ -73,6 +72,8 @@ public Application( this.gpa = gpa; this.languageTest = languageTest; this.term = term; + this.updateCount = 0; + this.verifyStatus = PENDING; } public void updateGpaAndLanguageTest( @@ -96,9 +97,4 @@ public void updateUniversityChoice( this.thirdChoiceUniversity = thirdChoiceUniversity; this.nicknameForApply = nicknameForApply; } - - public void updateTerm( - String term) { - this.term = term; - } } diff --git a/src/main/java/com/example/solidconnection/application/service/ApplicationSubmissionService.java b/src/main/java/com/example/solidconnection/application/service/ApplicationSubmissionService.java index a36aea97f..753bc89cc 100644 --- a/src/main/java/com/example/solidconnection/application/service/ApplicationSubmissionService.java +++ b/src/main/java/com/example/solidconnection/application/service/ApplicationSubmissionService.java @@ -16,13 +16,9 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.HashSet; -import java.util.Objects; -import java.util.Set; +import java.util.*; -import static com.example.solidconnection.custom.exception.ErrorCode.APPLY_UPDATE_LIMIT_EXCEED; -import static com.example.solidconnection.custom.exception.ErrorCode.CANT_APPLY_FOR_SAME_UNIVERSITY; -import static com.example.solidconnection.custom.exception.ErrorCode.SCORE_SHOULD_SUBMITTED_FIRST; +import static com.example.solidconnection.custom.exception.ErrorCode.*; @RequiredArgsConstructor @Service @@ -35,11 +31,12 @@ public class ApplicationSubmissionService { private final SiteUserRepository siteUserRepository; @Value("${university.term}") - public String term; + private String term; /* * 학점과 영어 성적을 제출한다. - * - 기존에 제출한 적이 있다면, 수정한다. + * - 금학기에 제출한 적이 있다면, 수정한다. + * - 성적을 제출한적이 한번도 없거나 제출한적이 있지만 금학기에 제출한 적이 없다면 새로 등록한다. * - 수정을 하고 나면, 성적 승인 상태(verifyStatus)를 PENDING 상태로 변경한다. * */ @Transactional @@ -48,18 +45,14 @@ public boolean submitScore(String email, ScoreRequest scoreRequest) { Gpa gpa = scoreRequest.toGpa(); LanguageTest languageTest = scoreRequest.toLanguageTest(); - applicationRepository.findBySiteUser_Email(email) + applicationRepository.findBySiteUserAndTerm(siteUser, term) .ifPresentOrElse( - // 수정 - application -> { - application.updateGpaAndLanguageTest(gpa, languageTest); - application.updateTerm(term); - }, - - // 최초 등록 - () -> applicationRepository.save( - new Application(siteUser, gpa, languageTest, term) - ) + // 금학기에 성적 제출 이력이 있는 경우 + application -> application.updateGpaAndLanguageTest(gpa, languageTest), + () -> { + // 성적 제출한적이 한번도 없는 경우 && 성적 제출한적이 있지만 금학기에 없는 경우 + applicationRepository.save(new Application(siteUser, gpa, languageTest, term)); + } ); return true; } @@ -76,9 +69,20 @@ public boolean submitScore(String email, ScoreRequest scoreRequest) { @Transactional public boolean submitUniversityChoice(String email, UniversityChoiceRequest universityChoiceRequest) { validateNoDuplicateUniversityChoices(universityChoiceRequest); - Application application = applicationRepository.findBySiteUser_Email(email) + + // 성적 제출한 적이 한번도 없는 경우 + Application existingApplication = applicationRepository.findTop1BySiteUser_EmailOrderByTermDesc(email) .orElseThrow(() -> new CustomException(SCORE_SHOULD_SUBMITTED_FIRST)); + Application application = Optional.of(existingApplication) + .filter(app -> !app.getTerm().equals(term)) + .map(app -> { + // 성적 제출한 적이 있지만 금학기에 없는 경우, 이전 성적으로 새 Application 객체를 등록 + SiteUser siteUser = siteUserRepository.getByEmail(email); + return applicationRepository.save(new Application(siteUser, app.getGpa(), app.getLanguageTest(), term)); + }) + .orElse(existingApplication); // 금학기에 이미 성적 제출한 경우 기존 객체 사용 + UniversityInfoForApply firstChoiceUniversity = universityInfoForApplyRepository .getUniversityInfoForApplyByIdAndTerm(universityChoiceRequest.firstChoiceUniversityId(), term); UniversityInfoForApply secondChoiceUniversity = universityInfoForApplyRepository @@ -88,7 +92,6 @@ public boolean submitUniversityChoice(String email, UniversityChoiceRequest univ validateUpdateLimitNotExceed(application); application.updateUniversityChoice(firstChoiceUniversity, secondChoiceUniversity, thirdChoiceUniversity, getRandomNickname()); - application.updateTerm(term); return true; } diff --git a/src/main/java/com/example/solidconnection/university/service/UniversityRecommendService.java b/src/main/java/com/example/solidconnection/university/service/UniversityRecommendService.java index bb704faea..88a7a222f 100644 --- a/src/main/java/com/example/solidconnection/university/service/UniversityRecommendService.java +++ b/src/main/java/com/example/solidconnection/university/service/UniversityRecommendService.java @@ -26,7 +26,7 @@ public class UniversityRecommendService { private final SiteUserRepository siteUserRepository; @Value("${university.term}") - public String term; + private String term; /* * 사용자 맞춤 추천 대학교를 불러온다. diff --git a/src/test/java/com/example/solidconnection/e2e/ApplicationSubmissionTest.java b/src/test/java/com/example/solidconnection/e2e/ApplicationSubmissionTest.java index 52808c5ac..a12612071 100644 --- a/src/test/java/com/example/solidconnection/e2e/ApplicationSubmissionTest.java +++ b/src/test/java/com/example/solidconnection/e2e/ApplicationSubmissionTest.java @@ -66,7 +66,7 @@ public void setUpUserAndToken() { .then().log().all() .statusCode(HttpStatus.OK.value()); - Application application = applicationRepository.getApplicationBySiteUser(siteUser); + Application application = applicationRepository.getApplicationBySiteUserAndTerm(siteUser,term); assertAll("대학교 성적과 어학 성적을 저장한다.", () -> assertThat(application.getId()).isNotNull(), () -> assertThat(application.getSiteUser().getId()).isEqualTo(siteUser.getId()), @@ -98,7 +98,7 @@ public void setUpUserAndToken() { .then().log().all() .statusCode(HttpStatus.OK.value()); - Application updatedApplication = applicationRepository.getApplicationBySiteUser(siteUser); + Application updatedApplication = applicationRepository.getApplicationBySiteUserAndTerm(siteUser,term); assertAll("대학교 성적과 어학 성적을 수정한다. 이때 수정 횟수는 증가하지 않고, 성적 승인 상태는 PENDING 으로 바뀐다.", () -> assertThat(updatedApplication.getId()).isNotNull(), () -> assertThat(updatedApplication.getSiteUser().getId()).isEqualTo(siteUser.getId()), @@ -129,7 +129,7 @@ public void setUpUserAndToken() { .then().log().all() .statusCode(HttpStatus.OK.value()); - Application application = applicationRepository.getApplicationBySiteUser(siteUser); + Application application = applicationRepository.getApplicationBySiteUserAndTerm(siteUser,term); assertAll("지망 대학교를 저장한다.", () -> assertThat(application.getId()).isNotNull(), () -> assertThat(application.getSiteUser().getId()).isEqualTo(siteUser.getId()), @@ -148,7 +148,7 @@ public void setUpUserAndToken() { "languageTestReportUrl", 4.0, 4.5, "gpaReportUrl"); applicationRepository.save(new Application(siteUser, firstRequest.toGpa(), firstRequest.toLanguageTest(),term)) .updateUniversityChoice(괌대학_A_지원_정보, 괌대학_B_지원_정보, 네바다주립대학_라스베이거스_지원_정보, "nickname"); - Application initialApplication = applicationRepository.getApplicationBySiteUser(siteUser); + Application initialApplication = applicationRepository.getApplicationBySiteUserAndTerm(siteUser,term); // request - body 생성 및 요청 UniversityChoiceRequest request = new UniversityChoiceRequest(그라츠대학_지원_정보.getId(), 코펜하겐IT대학_지원_정보.getId(), 메이지대학_지원_정보.getId()); @@ -161,7 +161,7 @@ public void setUpUserAndToken() { .then().log().all() .statusCode(HttpStatus.OK.value()); - Application updatedApplication = applicationRepository.getApplicationBySiteUser(siteUser); + Application updatedApplication = applicationRepository.getApplicationBySiteUserAndTerm(siteUser,term); assertAll("지망 대학교를 수정한다. 이때 수정 횟수는 증가하고, 성적 승인 상태는 바뀌지 않는다.", () -> assertThat(updatedApplication.getId()).isNotNull(), () -> assertThat(updatedApplication.getSiteUser().getId()).isEqualTo(siteUser.getId()), @@ -179,7 +179,7 @@ public void setUpUserAndToken() { ScoreRequest firstRequest = new ScoreRequest(LanguageTestType.TOEFL_IBT, "80", "languageTestReportUrl", 4.0, 4.5, "gpaReportUrl"); applicationRepository.save(new Application(siteUser, firstRequest.toGpa(), firstRequest.toLanguageTest(),term)); - Application initialApplication = applicationRepository.getApplicationBySiteUser(siteUser); + Application initialApplication = applicationRepository.getApplicationBySiteUserAndTerm(siteUser,term); // setUp - 지망 대학을 한계까지 수정 for (int i = 0; i <= APPLICATION_UPDATE_COUNT_LIMIT; i++) { From db3c01b8d5140a113ea6bde7c884b1936537cf99 Mon Sep 17 00:00:00 2001 From: sewon Date: Sun, 25 Aug 2024 13:29:11 +0900 Subject: [PATCH 6/9] =?UTF-8?q?refactor:=20=EC=9C=A0=EC=A0=80,=ED=95=99?= =?UTF-8?q?=EA=B8=B0=20=EC=8C=8D=EC=9C=BC=EB=A1=9C=20=EC=9C=A0=EC=9D=BC?= =?UTF-8?q?=ED=95=9C=20Application=EA=B0=9D=EC=B2=B4=20=EC=B0=BE=EB=8F=84?= =?UTF-8?q?=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/repository/ApplicationRepository.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/example/solidconnection/application/repository/ApplicationRepository.java b/src/main/java/com/example/solidconnection/application/repository/ApplicationRepository.java index d88fbf076..8f30c196c 100644 --- a/src/main/java/com/example/solidconnection/application/repository/ApplicationRepository.java +++ b/src/main/java/com/example/solidconnection/application/repository/ApplicationRepository.java @@ -18,9 +18,9 @@ public interface ApplicationRepository extends JpaRepository boolean existsByNicknameForApply(String nicknameForApply); - Optional findBySiteUser_Email(String email); + Optional findTop1BySiteUser_EmailOrderByTermDesc(String email); - Optional findBySiteUser(SiteUser siteUser); + Optional findBySiteUserAndTerm(SiteUser siteUser, String term); List findAllByFirstChoiceUniversityAndVerifyStatusAndTerm(UniversityInfoForApply firstChoiceUniversity, VerifyStatus verifyStatus, String term); @@ -28,8 +28,8 @@ public interface ApplicationRepository extends JpaRepository List findAllByThirdChoiceUniversityAndVerifyStatusAndTerm(UniversityInfoForApply thirdChoiceUniversity, VerifyStatus verifyStatus, String term); - default Application getApplicationBySiteUser(SiteUser siteUser) { - return findBySiteUser(siteUser) + default Application getApplicationBySiteUserAndTerm(SiteUser siteUser, String term) { + return findBySiteUserAndTerm(siteUser, term) .orElseThrow(() -> new CustomException(APPLICATION_NOT_FOUND)); } } From 486fe0943413b86e60722679ff448fc3e6c81956 Mon Sep 17 00:00:00 2001 From: sewon Date: Sun, 25 Aug 2024 13:30:00 +0900 Subject: [PATCH 7/9] =?UTF-8?q?refactor:=20=EB=8B=A4=EB=A5=B8=20=EC=A7=80?= =?UTF-8?q?=EC=9B=90=EC=9E=90=20=EC=84=B1=EC=A0=81=20=EC=A1=B0=ED=9A=8C=20?= =?UTF-8?q?=EA=B0=80=EB=8A=A5=20=EA=B8=B0=EC=A4=80=EC=9D=84=20=EA=B8=88?= =?UTF-8?q?=ED=95=99=EA=B8=B0=20=EC=A7=80=EC=9B=90=EC=9D=B4=EB=A0=A5=20?= =?UTF-8?q?=EC=9C=A0=EB=AC=B4=EB=A1=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/service/ApplicationQueryService.java | 4 +++- .../application/service/VerifyStatusQueryService.java | 7 ++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java b/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java index 77b2e93dd..2e481023d 100644 --- a/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java +++ b/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java @@ -59,8 +59,10 @@ public ApplicationsResponse getApplicants(String email, String regionCode, Strin return new ApplicationsResponse(firstChoiceApplicants, secondChoiceApplicants, thirdChoiceApplicants); } + // 학기별로 상태가 관리된다. + // 금학기에 지원이력이 있는 사용자만 지원정보를 확인할 수 있도록 한다. private void validateSiteUserCanViewApplicants(SiteUser siteUser) { - VerifyStatus verifyStatus = applicationRepository.getApplicationBySiteUser(siteUser).getVerifyStatus(); + VerifyStatus verifyStatus = applicationRepository.getApplicationBySiteUserAndTerm(siteUser,term).getVerifyStatus(); if (verifyStatus != VerifyStatus.APPROVED) { throw new CustomException(APPLICATION_NOT_APPROVED); } diff --git a/src/main/java/com/example/solidconnection/application/service/VerifyStatusQueryService.java b/src/main/java/com/example/solidconnection/application/service/VerifyStatusQueryService.java index a5f7bf752..33bb340d9 100644 --- a/src/main/java/com/example/solidconnection/application/service/VerifyStatusQueryService.java +++ b/src/main/java/com/example/solidconnection/application/service/VerifyStatusQueryService.java @@ -7,6 +7,7 @@ import com.example.solidconnection.siteuser.repository.SiteUserRepository; import com.example.solidconnection.type.VerifyStatus; import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -25,13 +26,17 @@ public class VerifyStatusQueryService { private final ApplicationRepository applicationRepository; private final SiteUserRepository siteUserRepository; + @Value("${university.term}") + private String term; + /* * 지원 상태를 조회한다. + * 학기별로 상태가 관리된다. * */ @Transactional(readOnly = true) public VerifyStatusResponse getVerifyStatus(String email) { SiteUser siteUser = siteUserRepository.getByEmail(email); - Optional application = applicationRepository.findBySiteUser_Email(siteUser.getEmail()); + Optional application = applicationRepository.findBySiteUserAndTerm(siteUser,term); // 아무것도 제출 안함 if (application.isEmpty()) { From 00add2bd13f3cdb3671f7950fd93b90414a02003 Mon Sep 17 00:00:00 2001 From: sewon Date: Sun, 25 Aug 2024 13:30:29 +0900 Subject: [PATCH 8/9] =?UTF-8?q?test:=20ApplicationService=20=ED=85=8C?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=20=EB=A1=9C=EC=A7=81=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../unit/service/ApplicationServiceTest.java | 172 ++++++++++++++++++ 1 file changed, 172 insertions(+) create mode 100644 src/test/java/com/example/solidconnection/unit/service/ApplicationServiceTest.java diff --git a/src/test/java/com/example/solidconnection/unit/service/ApplicationServiceTest.java b/src/test/java/com/example/solidconnection/unit/service/ApplicationServiceTest.java new file mode 100644 index 000000000..30cf546ab --- /dev/null +++ b/src/test/java/com/example/solidconnection/unit/service/ApplicationServiceTest.java @@ -0,0 +1,172 @@ +package com.example.solidconnection.unit.service; + +import com.example.solidconnection.application.domain.Application; +import com.example.solidconnection.application.domain.Gpa; +import com.example.solidconnection.application.domain.LanguageTest; +import com.example.solidconnection.application.dto.ScoreRequest; +import com.example.solidconnection.application.dto.UniversityChoiceRequest; +import com.example.solidconnection.application.repository.ApplicationRepository; +import com.example.solidconnection.application.service.ApplicationSubmissionService; +import com.example.solidconnection.custom.exception.CustomException; +import com.example.solidconnection.siteuser.domain.SiteUser; +import com.example.solidconnection.siteuser.repository.SiteUserRepository; +import com.example.solidconnection.type.*; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; +import org.springframework.test.util.ReflectionTestUtils; + +import java.util.Optional; + +import static com.example.solidconnection.custom.exception.ErrorCode.SCORE_SHOULD_SUBMITTED_FIRST; +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.*; + +@ExtendWith(MockitoExtension.class) +@DisplayName("지원 서비스 테스트") +public class ApplicationServiceTest { + @InjectMocks + ApplicationSubmissionService applicationSubmissionService; + @Mock + ApplicationRepository applicationRepository; + @Mock + SiteUserRepository siteUserRepository; + + private SiteUser siteUser; + private Application application; + private Application applicationBeforeTerm; + + private String term = "2024-1"; + private String beforeTerm = "1999-1"; + + @BeforeEach + void setUp() { + ReflectionTestUtils.setField(applicationSubmissionService, "term", term); // 테스트시 @value값 주입위함 + siteUser = createSiteUser(); + application = createApplication(term); + applicationBeforeTerm = createApplication(beforeTerm); + } + + private SiteUser createSiteUser() { + return new SiteUser( + "test@example.com", + "nickname", + "profileImageUrl", + "1999-01-01", + PreparationStatus.CONSIDERING, + Role.MENTEE, + Gender.MALE + ); + } + + private Application createApplication(String term) { + return new Application( + siteUser, + new Gpa(4.0, 4.5, "url"), + new LanguageTest(LanguageTestType.TOEIC, "900", "url"), + term + ); + } + + @Test + void 성적을_제출한다_금학기_제출이력_없음() { + // Given + ScoreRequest scoreRequest = new ScoreRequest( + LanguageTestType.TOEIC, "990", "url", 4.5, 4.5, "url" + ); + when(siteUserRepository.getByEmail(siteUser.getEmail())).thenReturn(siteUser); + when(applicationRepository.findBySiteUserAndTerm(siteUser, term)).thenReturn(Optional.empty()); + + // When + applicationSubmissionService.submitScore(siteUser.getEmail(), scoreRequest); + + // Then + verify(siteUserRepository, times(1)).getByEmail(siteUser.getEmail()); + verify(applicationRepository, times(1)).findBySiteUserAndTerm(siteUser, term); + verify(applicationRepository, times(1)).save(any(Application.class)); + } + + @Test + void 성적을_제출한다_금학기_제출이력_있음() { + // Given + ScoreRequest scoreRequest = new ScoreRequest( + LanguageTestType.TOEIC, "990", "url", 4.5, 4.5, "url" + ); + when(siteUserRepository.getByEmail(siteUser.getEmail())).thenReturn(siteUser); + when(applicationRepository.findBySiteUserAndTerm(siteUser, term)).thenReturn(Optional.of(application)); + + // When + applicationSubmissionService.submitScore(siteUser.getEmail(), scoreRequest); + + // Then + assertEquals(application.getGpa().getGpa(), scoreRequest.gpa()); + assertEquals(application.getLanguageTest().getLanguageTestScore(), scoreRequest.languageTestScore()); + verify(siteUserRepository, times(1)).getByEmail(siteUser.getEmail()); + verify(applicationRepository, times(1)).findBySiteUserAndTerm(siteUser, term); + verify(applicationRepository, times(0)).save(any(Application.class)); + } + + // 예외테스트 + @Test + void 지망대학_제출할_때_성적_제출이력이_없다면_예외_응답을_반환한다() { + // given + UniversityChoiceRequest universityChoiceRequest = new UniversityChoiceRequest( + 1L, 2L, 3L + ); + when(applicationRepository.findTop1BySiteUser_EmailOrderByTermDesc(siteUser.getEmail())) + .thenReturn(Optional.empty()); + // when, then + CustomException exception = assertThrows(CustomException.class, () -> { + applicationSubmissionService.submitUniversityChoice(siteUser.getEmail(), universityChoiceRequest); + }); + assertThat(exception.getMessage()) + .isEqualTo(SCORE_SHOULD_SUBMITTED_FIRST.getMessage()); + assertThat(exception.getCode()) + .isEqualTo(SCORE_SHOULD_SUBMITTED_FIRST.getCode()); + } + + @Test + void 지망대학_제출한다_이전학기_성적_제출이력_있음() { + // Given + UniversityChoiceRequest universityChoiceRequest = new UniversityChoiceRequest( + 1L, 2L, 3L + ); + when(applicationRepository.findTop1BySiteUser_EmailOrderByTermDesc(siteUser.getEmail())) + .thenReturn(Optional.of(applicationBeforeTerm)); + when(siteUserRepository.getByEmail(siteUser.getEmail())).thenReturn(siteUser); + + // When + applicationSubmissionService.submitUniversityChoice(siteUser.getEmail(), universityChoiceRequest); + + // Then + verify(applicationRepository, times(1)).findTop1BySiteUser_EmailOrderByTermDesc(siteUser.getEmail()); + verify(siteUserRepository, times(1)).getByEmail(siteUser.getEmail()); + verify(applicationRepository, times(1)).save(any(Application.class)); + } + + @Test + void 지망대학_제출한다_금학기_성적_제출이력_있음() { + // Given + UniversityChoiceRequest universityChoiceRequest = new UniversityChoiceRequest( + 1L, 2L, 3L + ); + when(applicationRepository.findTop1BySiteUser_EmailOrderByTermDesc(siteUser.getEmail())) + .thenReturn(Optional.of(application)); + System.out.println(application.getTerm()); + + // When + applicationSubmissionService.submitUniversityChoice(siteUser.getEmail(), universityChoiceRequest); + + // Then + verify(applicationRepository, times(1)).findTop1BySiteUser_EmailOrderByTermDesc(siteUser.getEmail()); + verify(siteUserRepository, times(0)).getByEmail(siteUser.getEmail()); + verify(applicationRepository, times(0)).save(any(Application.class)); + } +} From 6b399dbffffc32d0cc5570fd75a37b8c2f121053 Mon Sep 17 00:00:00 2001 From: sewon Date: Sun, 25 Aug 2024 13:46:16 +0900 Subject: [PATCH 9/9] =?UTF-8?q?test:=20ApplicationSubmissionService=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1=EC=97=90=20=ED=95=84=EC=9A=94=ED=95=9C=20Moc?= =?UTF-8?q?k=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../solidconnection/unit/service/ApplicationServiceTest.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/test/java/com/example/solidconnection/unit/service/ApplicationServiceTest.java b/src/test/java/com/example/solidconnection/unit/service/ApplicationServiceTest.java index 30cf546ab..d967c90bf 100644 --- a/src/test/java/com/example/solidconnection/unit/service/ApplicationServiceTest.java +++ b/src/test/java/com/example/solidconnection/unit/service/ApplicationServiceTest.java @@ -11,6 +11,7 @@ import com.example.solidconnection.siteuser.domain.SiteUser; import com.example.solidconnection.siteuser.repository.SiteUserRepository; import com.example.solidconnection.type.*; +import com.example.solidconnection.university.repository.UniversityInfoForApplyRepository; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -38,6 +39,8 @@ public class ApplicationServiceTest { ApplicationRepository applicationRepository; @Mock SiteUserRepository siteUserRepository; + @Mock + UniversityInfoForApplyRepository universityInfoForApplyRepository; private SiteUser siteUser; private Application application; @@ -159,7 +162,6 @@ private Application createApplication(String term) { ); when(applicationRepository.findTop1BySiteUser_EmailOrderByTermDesc(siteUser.getEmail())) .thenReturn(Optional.of(application)); - System.out.println(application.getTerm()); // When applicationSubmissionService.submitUniversityChoice(siteUser.getEmail(), universityChoiceRequest);