From a5f11500b1cdec11e2dfb7f701ed8bbac722461b Mon Sep 17 00:00:00 2001 From: Gyuhyeok99 <126947828+Gyuhyeok99@users.noreply.github.com> Date: Mon, 27 Jan 2025 00:19:13 +0900 Subject: [PATCH 1/7] =?UTF-8?q?test:=20GPA=20=EB=93=B1=EB=A1=9D=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 --- .../score/service/ScoreServiceTest.java | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 src/test/java/com/example/solidconnection/score/service/ScoreServiceTest.java diff --git a/src/test/java/com/example/solidconnection/score/service/ScoreServiceTest.java b/src/test/java/com/example/solidconnection/score/service/ScoreServiceTest.java new file mode 100644 index 000000000..7a0a1bc68 --- /dev/null +++ b/src/test/java/com/example/solidconnection/score/service/ScoreServiceTest.java @@ -0,0 +1,73 @@ +package com.example.solidconnection.score.service; + +import com.example.solidconnection.score.domain.GpaScore; +import com.example.solidconnection.score.dto.GpaScoreRequest; +import com.example.solidconnection.score.repository.GpaScoreRepository; +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; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; + +import java.time.LocalDate; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertAll; + +@DisplayName("점수 서비스 테스트") +class ScoreServiceTest extends BaseIntegrationTest { + + @Autowired + private ScoreService scoreService; + + @Autowired + private GpaScoreRepository gpaScoreRepository; + + @Autowired + private SiteUserRepository siteUserRepository; + + @Test + void GPA_점수를_등록한다() { + // given + SiteUser testUser = createSiteUser(); + GpaScoreRequest request = createGpaScoreRequest(); + + // when + Long scoreId = scoreService.submitGpaScore(testUser.getEmail(), request); + GpaScore savedScore = gpaScoreRepository.findById(scoreId).orElseThrow(); + + // then + assertAll( + () -> assertThat(savedScore.getId()).isEqualTo(scoreId), + () -> assertThat(savedScore.getGpa().getGpa()).isEqualTo(request.gpa()), + () -> assertThat(savedScore.getGpa().getGpaCriteria()).isEqualTo(request.gpaCriteria()), + () -> assertThat(savedScore.getIssueDate()).isEqualTo(request.issueDate()) + ); + } + + 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 GpaScoreRequest createGpaScoreRequest() { + return new GpaScoreRequest( + 3.5, + 4.5, + LocalDate.now(), + "https://example.com/gpa-report.pdf" + ); + } +} From 54871c9b9bfa83af0a0ec8f0ab7194fc15a830a4 Mon Sep 17 00:00:00 2001 From: Gyuhyeok99 <126947828+Gyuhyeok99@users.noreply.github.com> Date: Mon, 27 Jan 2025 00:25:07 +0900 Subject: [PATCH 2/7] =?UTF-8?q?test:=20=EC=96=B4=ED=95=99=20=EC=8B=9C?= =?UTF-8?q?=ED=97=98=20=EC=A0=90=EC=88=98=20=EB=93=B1=EB=A1=9D=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 --- .../score/service/ScoreServiceTest.java | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/src/test/java/com/example/solidconnection/score/service/ScoreServiceTest.java b/src/test/java/com/example/solidconnection/score/service/ScoreServiceTest.java index 7a0a1bc68..eb8e95efa 100644 --- a/src/test/java/com/example/solidconnection/score/service/ScoreServiceTest.java +++ b/src/test/java/com/example/solidconnection/score/service/ScoreServiceTest.java @@ -1,14 +1,19 @@ package com.example.solidconnection.score.service; import com.example.solidconnection.score.domain.GpaScore; +import com.example.solidconnection.score.domain.LanguageTestScore; import com.example.solidconnection.score.dto.GpaScoreRequest; +import com.example.solidconnection.score.dto.LanguageTestScoreRequest; import com.example.solidconnection.score.repository.GpaScoreRepository; +import com.example.solidconnection.score.repository.LanguageTestScoreRepository; 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.LanguageTestType; import com.example.solidconnection.type.PreparationStatus; import com.example.solidconnection.type.Role; +import com.example.solidconnection.type.VerifyStatus; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -30,6 +35,9 @@ class ScoreServiceTest extends BaseIntegrationTest { @Autowired private SiteUserRepository siteUserRepository; + @Autowired + private LanguageTestScoreRepository languageTestScoreRepository; + @Test void GPA_점수를_등록한다() { // given @@ -49,6 +57,26 @@ class ScoreServiceTest extends BaseIntegrationTest { ); } + @Test + void 어학_시험_점수를_등록한다() { + // given + SiteUser testUser = createSiteUser(); + LanguageTestScoreRequest request = createLanguageTestScoreRequest(); + + // when + Long scoreId = scoreService.submitLanguageTestScore(testUser.getEmail(), request); + LanguageTestScore savedScore = languageTestScoreRepository.findById(scoreId).orElseThrow(); + + // then + assertAll( + () -> assertThat(savedScore.getId()).isEqualTo(scoreId), + () -> assertThat(savedScore.getLanguageTest().getLanguageTestType()).isEqualTo(request.languageTestType()), + () -> assertThat(savedScore.getLanguageTest().getLanguageTestScore()).isEqualTo(request.languageTestScore()), + () -> assertThat(savedScore.getIssueDate()).isEqualTo(request.issueDate()), + () -> assertThat(savedScore.getVerifyStatus()).isEqualTo(VerifyStatus.PENDING) + ); + } + private SiteUser createSiteUser() { SiteUser siteUser = new SiteUser( "test@example.com", @@ -70,4 +98,13 @@ private GpaScoreRequest createGpaScoreRequest() { "https://example.com/gpa-report.pdf" ); } + + private LanguageTestScoreRequest createLanguageTestScoreRequest() { + return new LanguageTestScoreRequest( + LanguageTestType.TOEFL_IBT, + "100", + LocalDate.now(), + "https://example.com/gpa-report.pdf" + ); + } } From 15403163b61b64a51b89857f388ba1a708529754 Mon Sep 17 00:00:00 2001 From: Gyuhyeok99 <126947828+Gyuhyeok99@users.noreply.github.com> Date: Mon, 27 Jan 2025 00:56:00 +0900 Subject: [PATCH 3/7] =?UTF-8?q?test:=20GPA=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 --- .../score/service/ScoreServiceTest.java | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/src/test/java/com/example/solidconnection/score/service/ScoreServiceTest.java b/src/test/java/com/example/solidconnection/score/service/ScoreServiceTest.java index eb8e95efa..fa08bc9a0 100644 --- a/src/test/java/com/example/solidconnection/score/service/ScoreServiceTest.java +++ b/src/test/java/com/example/solidconnection/score/service/ScoreServiceTest.java @@ -1,8 +1,11 @@ package com.example.solidconnection.score.service; +import com.example.solidconnection.application.domain.Gpa; import com.example.solidconnection.score.domain.GpaScore; import com.example.solidconnection.score.domain.LanguageTestScore; import com.example.solidconnection.score.dto.GpaScoreRequest; +import com.example.solidconnection.score.dto.GpaScoreStatus; +import com.example.solidconnection.score.dto.GpaScoreStatusResponse; import com.example.solidconnection.score.dto.LanguageTestScoreRequest; import com.example.solidconnection.score.repository.GpaScoreRepository; import com.example.solidconnection.score.repository.LanguageTestScoreRepository; @@ -19,6 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired; import java.time.LocalDate; +import java.util.List; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertAll; @@ -38,6 +42,40 @@ class ScoreServiceTest extends BaseIntegrationTest { @Autowired private LanguageTestScoreRepository languageTestScoreRepository; + @Test + void GPA_점수_상태를_조회한다() { + // given + SiteUser testUser = createSiteUser(); + List scores = List.of( + createGpaScore(testUser, 3.5, 4.5), + createGpaScore(testUser, 3.8, 4.5) + ); + + // when + GpaScoreStatusResponse response = scoreService.getGpaScoreStatus(testUser.getEmail()); + + // then + assertThat(response.gpaScoreStatusList()) + .hasSize(scores.size()) + .containsExactlyInAnyOrder( + scores.stream() + .map(GpaScoreStatus::from) + .toArray(GpaScoreStatus[]::new) + ); + } + + @Test + void GPA_점수가_없는_경우_빈_리스트를_반환한다() { + // given + SiteUser testUser = createSiteUser(); + + // when + GpaScoreStatusResponse response = scoreService.getGpaScoreStatus(testUser.getEmail()); + + // then + assertThat(response.gpaScoreStatusList()).isEmpty(); + } + @Test void GPA_점수를_등록한다() { // given @@ -90,6 +128,15 @@ private SiteUser createSiteUser() { return siteUserRepository.save(siteUser); } + private GpaScore createGpaScore(SiteUser siteUser, double gpa, double gpaCriteria) { + GpaScore gpaScore = new GpaScore( + new Gpa(gpa, gpaCriteria, "https://example.com/gpa-report.pdf"), + siteUser, + LocalDate.now() + ); + return gpaScoreRepository.save(gpaScore); + } + private GpaScoreRequest createGpaScoreRequest() { return new GpaScoreRequest( 3.5, From 96f31eeea61247bb3cacc1bc488086f620ac3c3c Mon Sep 17 00:00:00 2001 From: Gyuhyeok99 <126947828+Gyuhyeok99@users.noreply.github.com> Date: Mon, 27 Jan 2025 01:09:21 +0900 Subject: [PATCH 4/7] =?UTF-8?q?test:=20=EC=96=B4=ED=95=99=EC=8B=9C?= =?UTF-8?q?=ED=97=98=20=EC=A1=B0=ED=9A=8C=20=EA=B4=80=EB=A0=A8=20=ED=86=B5?= =?UTF-8?q?=ED=95=A9=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=BD=94=EB=93=9C=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 --- .../score/service/ScoreServiceTest.java | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/src/test/java/com/example/solidconnection/score/service/ScoreServiceTest.java b/src/test/java/com/example/solidconnection/score/service/ScoreServiceTest.java index fa08bc9a0..8a93b83ee 100644 --- a/src/test/java/com/example/solidconnection/score/service/ScoreServiceTest.java +++ b/src/test/java/com/example/solidconnection/score/service/ScoreServiceTest.java @@ -1,12 +1,15 @@ package com.example.solidconnection.score.service; import com.example.solidconnection.application.domain.Gpa; +import com.example.solidconnection.application.domain.LanguageTest; import com.example.solidconnection.score.domain.GpaScore; import com.example.solidconnection.score.domain.LanguageTestScore; import com.example.solidconnection.score.dto.GpaScoreRequest; import com.example.solidconnection.score.dto.GpaScoreStatus; import com.example.solidconnection.score.dto.GpaScoreStatusResponse; import com.example.solidconnection.score.dto.LanguageTestScoreRequest; +import com.example.solidconnection.score.dto.LanguageTestScoreStatus; +import com.example.solidconnection.score.dto.LanguageTestScoreStatusResponse; import com.example.solidconnection.score.repository.GpaScoreRepository; import com.example.solidconnection.score.repository.LanguageTestScoreRepository; import com.example.solidconnection.siteuser.domain.SiteUser; @@ -76,6 +79,40 @@ class ScoreServiceTest extends BaseIntegrationTest { assertThat(response.gpaScoreStatusList()).isEmpty(); } + @Test + void 어학_시험_점수_상태를_조회한다() { + // given + SiteUser testUser = createSiteUser(); + List scores = List.of( + createLanguageTestScore(testUser, LanguageTestType.TOEIC, "100"), + createLanguageTestScore(testUser, LanguageTestType.TOEFL_IBT, "7.5") + ); + + // when + LanguageTestScoreStatusResponse response = scoreService.getLanguageTestScoreStatus(testUser.getEmail()); + + // then + assertThat(response.languageTestScoreStatusList()) + .hasSize(scores.size()) + .containsExactlyInAnyOrder( + scores.stream() + .map(LanguageTestScoreStatus::from) + .toArray(LanguageTestScoreStatus[]::new) + ); + } + + @Test + void 어학_시험_점수가_없는_경우_빈_리스트를_반환한다() { + // given + SiteUser testUser = createSiteUser(); + + // when + LanguageTestScoreStatusResponse response = scoreService.getLanguageTestScoreStatus(testUser.getEmail()); + + // then + assertThat(response.languageTestScoreStatusList()).isEmpty(); + } + @Test void GPA_점수를_등록한다() { // given @@ -137,6 +174,15 @@ private GpaScore createGpaScore(SiteUser siteUser, double gpa, double gpaCriteri return gpaScoreRepository.save(gpaScore); } + private LanguageTestScore createLanguageTestScore(SiteUser siteUser, LanguageTestType languageTestType, String score) { + LanguageTestScore languageTestScore = new LanguageTestScore( + new LanguageTest(languageTestType, score, "https://example.com/gpa-report.pdf"), + LocalDate.now(), + siteUser + ); + return languageTestScoreRepository.save(languageTestScore); + } + private GpaScoreRequest createGpaScoreRequest() { return new GpaScoreRequest( 3.5, From 28eb9a0038018bb737c1db51f3fa5cebc30658f2 Mon Sep 17 00:00:00 2001 From: Gyuhyeok99 <126947828+Gyuhyeok99@users.noreply.github.com> Date: Tue, 28 Jan 2025 12:39:09 +0900 Subject: [PATCH 5/7] =?UTF-8?q?test:=20GPA=20=EC=A0=90=EC=88=98=20?= =?UTF-8?q?=EB=93=B1=EB=A1=9D=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=8B=9C=20?= =?UTF-8?q?VerifyStatus=20=EA=B2=80=EC=A6=9D=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../solidconnection/score/service/ScoreServiceTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/test/java/com/example/solidconnection/score/service/ScoreServiceTest.java b/src/test/java/com/example/solidconnection/score/service/ScoreServiceTest.java index 8a93b83ee..6f46e80c8 100644 --- a/src/test/java/com/example/solidconnection/score/service/ScoreServiceTest.java +++ b/src/test/java/com/example/solidconnection/score/service/ScoreServiceTest.java @@ -128,7 +128,8 @@ class ScoreServiceTest extends BaseIntegrationTest { () -> assertThat(savedScore.getId()).isEqualTo(scoreId), () -> assertThat(savedScore.getGpa().getGpa()).isEqualTo(request.gpa()), () -> assertThat(savedScore.getGpa().getGpaCriteria()).isEqualTo(request.gpaCriteria()), - () -> assertThat(savedScore.getIssueDate()).isEqualTo(request.issueDate()) + () -> assertThat(savedScore.getIssueDate()).isEqualTo(request.issueDate()), + () -> assertThat(savedScore.getVerifyStatus()).isEqualTo(VerifyStatus.PENDING) ); } From 21d2593480c1a13ffd5fb44cf4da0c084c921b66 Mon Sep 17 00:00:00 2001 From: Gyuhyeok99 <126947828+Gyuhyeok99@users.noreply.github.com> Date: Tue, 28 Jan 2025 12:43:22 +0900 Subject: [PATCH 6/7] =?UTF-8?q?refactor:=20GPA=20=ED=85=8C=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=20=EC=8B=9C=20Long=20=ED=83=80=EC=9E=85=20long?= =?UTF-8?q?=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 --- .../solidconnection/score/service/ScoreServiceTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/com/example/solidconnection/score/service/ScoreServiceTest.java b/src/test/java/com/example/solidconnection/score/service/ScoreServiceTest.java index 6f46e80c8..40309f0f6 100644 --- a/src/test/java/com/example/solidconnection/score/service/ScoreServiceTest.java +++ b/src/test/java/com/example/solidconnection/score/service/ScoreServiceTest.java @@ -120,7 +120,7 @@ class ScoreServiceTest extends BaseIntegrationTest { GpaScoreRequest request = createGpaScoreRequest(); // when - Long scoreId = scoreService.submitGpaScore(testUser.getEmail(), request); + long scoreId = scoreService.submitGpaScore(testUser.getEmail(), request); GpaScore savedScore = gpaScoreRepository.findById(scoreId).orElseThrow(); // then @@ -140,7 +140,7 @@ class ScoreServiceTest extends BaseIntegrationTest { LanguageTestScoreRequest request = createLanguageTestScoreRequest(); // when - Long scoreId = scoreService.submitLanguageTestScore(testUser.getEmail(), request); + long scoreId = scoreService.submitLanguageTestScore(testUser.getEmail(), request); LanguageTestScore savedScore = languageTestScoreRepository.findById(scoreId).orElseThrow(); // then From 5252e7440628388d1bfd32225856a0502bdf0209 Mon Sep 17 00:00:00 2001 From: Gyuhyeok99 <126947828+Gyuhyeok99@users.noreply.github.com> Date: Tue, 28 Jan 2025 12:46:49 +0900 Subject: [PATCH 7/7] =?UTF-8?q?test:=20GpaScore=20=EC=A0=84=EC=B2=B4=20url?= =?UTF-8?q?=EC=9D=B4=20=EC=95=84=EB=8B=8C=20resource=EA=B9=8C=EC=A7=80?= =?UTF-8?q?=EC=9D=98=20path=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 --- .../solidconnection/score/service/ScoreServiceTest.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/test/java/com/example/solidconnection/score/service/ScoreServiceTest.java b/src/test/java/com/example/solidconnection/score/service/ScoreServiceTest.java index 40309f0f6..4a511d867 100644 --- a/src/test/java/com/example/solidconnection/score/service/ScoreServiceTest.java +++ b/src/test/java/com/example/solidconnection/score/service/ScoreServiceTest.java @@ -168,7 +168,7 @@ private SiteUser createSiteUser() { private GpaScore createGpaScore(SiteUser siteUser, double gpa, double gpaCriteria) { GpaScore gpaScore = new GpaScore( - new Gpa(gpa, gpaCriteria, "https://example.com/gpa-report.pdf"), + new Gpa(gpa, gpaCriteria, "/gpa-report.pdf"), siteUser, LocalDate.now() ); @@ -177,7 +177,7 @@ private GpaScore createGpaScore(SiteUser siteUser, double gpa, double gpaCriteri private LanguageTestScore createLanguageTestScore(SiteUser siteUser, LanguageTestType languageTestType, String score) { LanguageTestScore languageTestScore = new LanguageTestScore( - new LanguageTest(languageTestType, score, "https://example.com/gpa-report.pdf"), + new LanguageTest(languageTestType, score, "/gpa-report.pdf"), LocalDate.now(), siteUser ); @@ -189,7 +189,7 @@ private GpaScoreRequest createGpaScoreRequest() { 3.5, 4.5, LocalDate.now(), - "https://example.com/gpa-report.pdf" + "/gpa-report.pdf" ); } @@ -198,7 +198,7 @@ private LanguageTestScoreRequest createLanguageTestScoreRequest() { LanguageTestType.TOEFL_IBT, "100", LocalDate.now(), - "https://example.com/gpa-report.pdf" + "/gpa-report.pdf" ); } }