From 55dcc4b9b94595e96d27076f3b63f82f15719f54 Mon Sep 17 00:00:00 2001 From: gdbs1107 Date: Fri, 5 Jun 2026 18:56:33 +0900 Subject: [PATCH] =?UTF-8?q?fix:#200=20=EB=A6=AC=EB=B7=B0=20=EC=A0=90?= =?UTF-8?q?=EC=88=98=20=EC=9D=91=EB=8B=B5=20=EC=A0=95=EC=88=98=20=EB=B0=98?= =?UTF-8?q?=EC=98=AC=EB=A6=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EvaluatorReviewDetailResponse.java | 8 ++- .../EvaluatorReviewListItemResponse.java | 8 ++- .../response/EvaluatorReviewListResponse.java | 8 ++- .../EvaluatorReviewResponseRoundingTest.java | 64 +++++++++++++++++++ 4 files changed, 82 insertions(+), 6 deletions(-) create mode 100644 ssd-api/src/test/java/or/hyu/ssd/api/document/response/EvaluatorReviewResponseRoundingTest.java diff --git a/ssd-api/src/main/java/or/hyu/ssd/api/document/response/EvaluatorReviewDetailResponse.java b/ssd-api/src/main/java/or/hyu/ssd/api/document/response/EvaluatorReviewDetailResponse.java index 55cad1d4..9d729235 100644 --- a/ssd-api/src/main/java/or/hyu/ssd/api/document/response/EvaluatorReviewDetailResponse.java +++ b/ssd-api/src/main/java/or/hyu/ssd/api/document/response/EvaluatorReviewDetailResponse.java @@ -12,7 +12,7 @@ public record EvaluatorReviewDetailResponse( int feasibility, int differentiation, int financial, - double totalScore, + int totalScore, String comment ) { public static EvaluatorReviewDetailResponse from(EvaluatorReviewDetailResult result) { @@ -24,8 +24,12 @@ public static EvaluatorReviewDetailResponse from(EvaluatorReviewDetailResult res result.feasibility(), result.differentiation(), result.financial(), - result.totalScore(), + roundScore(result.totalScore()), result.comment() ); } + + private static int roundScore(double score) { + return (int) Math.round(score); + } } diff --git a/ssd-api/src/main/java/or/hyu/ssd/api/document/response/EvaluatorReviewListItemResponse.java b/ssd-api/src/main/java/or/hyu/ssd/api/document/response/EvaluatorReviewListItemResponse.java index 39446c40..7e343802 100644 --- a/ssd-api/src/main/java/or/hyu/ssd/api/document/response/EvaluatorReviewListItemResponse.java +++ b/ssd-api/src/main/java/or/hyu/ssd/api/document/response/EvaluatorReviewListItemResponse.java @@ -12,7 +12,7 @@ public record EvaluatorReviewListItemResponse( int feasibility, int differentiation, int financial, - double totalScore, + int totalScore, String comment ) { public static EvaluatorReviewListItemResponse from(EvaluatorReviewListItemResult result) { @@ -24,8 +24,12 @@ public static EvaluatorReviewListItemResponse from(EvaluatorReviewListItemResult result.feasibility(), result.differentiation(), result.financial(), - result.totalScore(), + roundScore(result.totalScore()), result.comment() ); } + + private static int roundScore(double score) { + return (int) Math.round(score); + } } diff --git a/ssd-api/src/main/java/or/hyu/ssd/api/document/response/EvaluatorReviewListResponse.java b/ssd-api/src/main/java/or/hyu/ssd/api/document/response/EvaluatorReviewListResponse.java index 8212c3e1..acf93269 100644 --- a/ssd-api/src/main/java/or/hyu/ssd/api/document/response/EvaluatorReviewListResponse.java +++ b/ssd-api/src/main/java/or/hyu/ssd/api/document/response/EvaluatorReviewListResponse.java @@ -6,16 +6,20 @@ public record EvaluatorReviewListResponse( Long documentId, - double averageTotalScore, + int averageTotalScore, int reviewCount, List reviews ) { public static EvaluatorReviewListResponse from(EvaluatorReviewListResult result) { return new EvaluatorReviewListResponse( result.documentId(), - result.averageTotalScore(), + roundScore(result.averageTotalScore()), result.reviewCount(), result.reviews().stream().map(EvaluatorReviewListItemResponse::from).toList() ); } + + private static int roundScore(double score) { + return (int) Math.round(score); + } } diff --git a/ssd-api/src/test/java/or/hyu/ssd/api/document/response/EvaluatorReviewResponseRoundingTest.java b/ssd-api/src/test/java/or/hyu/ssd/api/document/response/EvaluatorReviewResponseRoundingTest.java new file mode 100644 index 00000000..de6eed90 --- /dev/null +++ b/ssd-api/src/test/java/or/hyu/ssd/api/document/response/EvaluatorReviewResponseRoundingTest.java @@ -0,0 +1,64 @@ +package or.hyu.ssd.api.document.response; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import or.hyu.ssd.document.application.result.EvaluatorReviewDetailResult; +import or.hyu.ssd.document.application.result.EvaluatorReviewListItemResult; +import or.hyu.ssd.document.application.result.EvaluatorReviewListResult; + +import java.time.LocalDateTime; +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; + +class EvaluatorReviewResponseRoundingTest { + + @Test + @DisplayName("리뷰 상세 응답 총점은 반올림된 정수로 변환된다") + void detailResponseRoundsScore() { + // given + EvaluatorReviewDetailResult result = new EvaluatorReviewDetailResult( + 1L, + "리뷰어", + "reviewer@example.com", + LocalDateTime.of(2026, 6, 5, 12, 0), + 8, + 8, + 9, + 8.333333, + "의견" + ); + + // when + EvaluatorReviewDetailResponse response = EvaluatorReviewDetailResponse.from(result); + + // then + assertThat(response.totalScore()).isEqualTo(8); + } + + @Test + @DisplayName("리뷰 목록 응답 점수들은 반올림된 정수로 변환된다") + void listResponseRoundsScores() { + // given + EvaluatorReviewListItemResult item = new EvaluatorReviewListItemResult( + 1L, + "리뷰어", + "reviewer@example.com", + LocalDateTime.of(2026, 6, 5, 12, 0), + 8, + 8, + 9, + 8.666667, + "의견" + ); + EvaluatorReviewListResult result = EvaluatorReviewListResult.of(10L, 8.333333, 1, List.of(item)); + + // when + EvaluatorReviewListResponse response = EvaluatorReviewListResponse.from(result); + + // then + assertThat(response.averageTotalScore()).isEqualTo(8); + assertThat(response.reviews()).hasSize(1); + assertThat(response.reviews().getFirst().totalScore()).isEqualTo(9); + } +}