From c7066cab8c079136da0ed9ce85be687dedd17eb0 Mon Sep 17 00:00:00 2001 From: Ethan Date: Sat, 17 Feb 2024 16:06:26 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20=EB=8B=A4=EB=A5=B8=20=EB=9E=AD?= =?UTF-8?q?=ED=82=B9=EB=8F=84=20=EC=B6=94=EA=B0=80=ED=95=A0=20=EC=88=98=20?= =?UTF-8?q?=EC=9E=88=EB=8F=84=EB=A1=9D=20Rankable=20=EB=A7=88=EC=BB=A4=20?= =?UTF-8?q?=EC=9D=B8=ED=84=B0=ED=8E=98=EC=9D=B4=EC=8A=A4=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../query/controller/response/RankResponses.java | 14 +++++++------- .../member/query/controller/response/Rankable.java | 4 ++++ .../member/query/service/RankQueryService.java | 2 +- .../support/query/RankQueryAssuredSupport.java | 9 +++++---- .../touch/baton/document/rank/RankReadApiTest.java | 12 ++++++------ .../member/query/service/RankQueryServiceTest.java | 4 ++-- 6 files changed, 25 insertions(+), 20 deletions(-) create mode 100644 backend/baton/src/main/java/touch/baton/domain/member/query/controller/response/Rankable.java diff --git a/backend/baton/src/main/java/touch/baton/domain/member/query/controller/response/RankResponses.java b/backend/baton/src/main/java/touch/baton/domain/member/query/controller/response/RankResponses.java index bbfe5802d..8f2b85ed9 100644 --- a/backend/baton/src/main/java/touch/baton/domain/member/query/controller/response/RankResponses.java +++ b/backend/baton/src/main/java/touch/baton/domain/member/query/controller/response/RankResponses.java @@ -5,12 +5,12 @@ import java.util.List; import java.util.concurrent.atomic.AtomicInteger; -public record RankResponses(List data) { +public record RankResponses(List data) { - public static RankResponses from(final List supporters) { + public static RankResponses from(final List supporters) { final AtomicInteger rank = new AtomicInteger(1); - final List responses = supporters.stream() - .map(supporter -> new SupporterResponse( + final List responses = supporters.stream() + .map(supporter -> new SupporterRank( rank.getAndIncrement(), supporter.getMember().getMemberName().getValue(), supporter.getId(), @@ -23,10 +23,10 @@ public static RankResponses from(final List supporters) { .toList())) .toList(); - return new RankResponses(responses); + return new RankResponses<>(responses); } - public record SupporterResponse( + public record SupporterRank( int rank, String name, long supporterId, @@ -35,7 +35,7 @@ public record SupporterResponse( String githubUrl, String company, List technicalTags - ) { + ) implements Rankable { } } diff --git a/backend/baton/src/main/java/touch/baton/domain/member/query/controller/response/Rankable.java b/backend/baton/src/main/java/touch/baton/domain/member/query/controller/response/Rankable.java new file mode 100644 index 000000000..9fdebd4d2 --- /dev/null +++ b/backend/baton/src/main/java/touch/baton/domain/member/query/controller/response/Rankable.java @@ -0,0 +1,4 @@ +package touch.baton.domain.member.query.controller.response; + +public interface Rankable { +} diff --git a/backend/baton/src/main/java/touch/baton/domain/member/query/service/RankQueryService.java b/backend/baton/src/main/java/touch/baton/domain/member/query/service/RankQueryService.java index e6bfd370b..106493efe 100644 --- a/backend/baton/src/main/java/touch/baton/domain/member/query/service/RankQueryService.java +++ b/backend/baton/src/main/java/touch/baton/domain/member/query/service/RankQueryService.java @@ -13,7 +13,7 @@ public class RankQueryService { private final RankQuerydslRepository rankQueryDslRepository; - public RankResponses readMostReviewSupporter(final int maxCount) { + public RankResponses readMostReviewSupporter(final int maxCount) { return RankResponses.from(rankQueryDslRepository.findMostReviewSupporterByCount(maxCount)); } } diff --git a/backend/baton/src/test/java/touch/baton/assure/member/support/query/RankQueryAssuredSupport.java b/backend/baton/src/test/java/touch/baton/assure/member/support/query/RankQueryAssuredSupport.java index 6c394e217..004608c04 100644 --- a/backend/baton/src/test/java/touch/baton/assure/member/support/query/RankQueryAssuredSupport.java +++ b/backend/baton/src/test/java/touch/baton/assure/member/support/query/RankQueryAssuredSupport.java @@ -1,5 +1,6 @@ package touch.baton.assure.member.support.query; +import io.restassured.common.mapper.TypeRef; import io.restassured.response.ExtractableResponse; import io.restassured.response.Response; import touch.baton.assure.common.AssuredSupport; @@ -46,8 +47,8 @@ public RankQueryResponseBuilder(final ExtractableResponse response) { this.response = response; } - public void 서포터_리뷰_랭킹_조회_성공을_검증한다(final List 랭킹_응답) { - final RankResponses actual = this.response.as(RankResponses.class); + public void 서포터_리뷰_랭킹_조회_성공을_검증한다(final List 랭킹_응답) { + final RankResponses actual = this.response.as(new TypeRef<>(){}); assertSoftly(softly -> { softly.assertThat(actual.data()).hasSize(랭킹_응답.size()); @@ -55,9 +56,9 @@ public RankQueryResponseBuilder(final ExtractableResponse response) { }); } - public static RankResponses.SupporterResponse 서포터_리뷰_랭킹_응답(final int 순위, final Supporter 서포터, final int 리뷰수) { + public static RankResponses.SupporterRank 서포터_리뷰_랭킹_응답(final int 순위, final Supporter 서포터, final int 리뷰수) { final Member member = 서포터.getMember(); - return new RankResponses.SupporterResponse(순위, + return new RankResponses.SupporterRank(순위, member.getMemberName().getValue(), 서포터.getId(), 리뷰수, diff --git a/backend/baton/src/test/java/touch/baton/document/rank/RankReadApiTest.java b/backend/baton/src/test/java/touch/baton/document/rank/RankReadApiTest.java index d827d57c1..2872b97f4 100644 --- a/backend/baton/src/test/java/touch/baton/document/rank/RankReadApiTest.java +++ b/backend/baton/src/test/java/touch/baton/document/rank/RankReadApiTest.java @@ -26,12 +26,12 @@ public class RankReadApiTest extends RestdocsConfig { @Test void readMostReviewSupporter() throws Exception { // given - final List response = List.of( - new RankResponses.SupporterResponse(1, "ethan", 1L, 10, "imageUrl", "githubUrl", "우아한테크코스", List.of("java", "spring")), - new RankResponses.SupporterResponse(2, "hyena", 2L, 9, "imageUrl", "githubUrl", "우아한테크코스", List.of("java", "spring")), - new RankResponses.SupporterResponse(3, "ditoo", 3L, 8, "imageUrl", "githubUrl", "우아한테크코스", List.of("java", "spring")), - new RankResponses.SupporterResponse(4, "aiden", 4L, 7, "imageUrl", "githubUrl", "우아한테크코스", List.of("javascript", "react")), - new RankResponses.SupporterResponse(5, "ditoo", 5L, 6, "imageUrl", "githubUrl", "우아한테크코스", List.of("javascript", "react")) + final List response = List.of( + new RankResponses.SupporterRank(1, "ethan", 1L, 10, "imageUrl", "githubUrl", "우아한테크코스", List.of("java", "spring")), + new RankResponses.SupporterRank(2, "hyena", 2L, 9, "imageUrl", "githubUrl", "우아한테크코스", List.of("java", "spring")), + new RankResponses.SupporterRank(3, "ditoo", 3L, 8, "imageUrl", "githubUrl", "우아한테크코스", List.of("java", "spring")), + new RankResponses.SupporterRank(4, "aiden", 4L, 7, "imageUrl", "githubUrl", "우아한테크코스", List.of("javascript", "react")), + new RankResponses.SupporterRank(5, "ditoo", 5L, 6, "imageUrl", "githubUrl", "우아한테크코스", List.of("javascript", "react")) ); // when diff --git a/backend/baton/src/test/java/touch/baton/domain/member/query/service/RankQueryServiceTest.java b/backend/baton/src/test/java/touch/baton/domain/member/query/service/RankQueryServiceTest.java index 7da2ef44f..306518e61 100644 --- a/backend/baton/src/test/java/touch/baton/domain/member/query/service/RankQueryServiceTest.java +++ b/backend/baton/src/test/java/touch/baton/domain/member/query/service/RankQueryServiceTest.java @@ -61,7 +61,7 @@ void readMostReviewSupporter() { // when final int maxCount = 5; - final RankResponses actual = rankQueryService.readMostReviewSupporter(maxCount); + final RankResponses actual = rankQueryService.readMostReviewSupporter(maxCount); // then assertAll( @@ -73,7 +73,7 @@ void readMostReviewSupporter() { ); } - private static void assertResponse(final RankResponses.SupporterResponse response, final int rank, final String memberName, final int reviewCount) { + private static void assertResponse(final RankResponses.SupporterRank response, final int rank, final String memberName, final int reviewCount) { assertAll( () -> assertThat(response.rank()).isEqualTo(rank), () -> assertThat(response.name()).isEqualTo(memberName),