diff --git a/backend/baton/src/main/java/touch/baton/domain/member/command/Supporter.java b/backend/baton/src/main/java/touch/baton/domain/member/command/Supporter.java index dc2473e77..7f4bf8eef 100644 --- a/backend/baton/src/main/java/touch/baton/domain/member/command/Supporter.java +++ b/backend/baton/src/main/java/touch/baton/domain/member/command/Supporter.java @@ -120,6 +120,10 @@ public void updateCompany(final Company company) { this.member.updateCompany(company); } + public void increaseReviewCount() { + this.reviewCount.increase(); + } + @Override public boolean equals(final Object o) { if (this == o) return true; diff --git a/backend/baton/src/main/java/touch/baton/domain/member/command/vo/ReviewCount.java b/backend/baton/src/main/java/touch/baton/domain/member/command/vo/ReviewCount.java index 958b89132..eb524477a 100644 --- a/backend/baton/src/main/java/touch/baton/domain/member/command/vo/ReviewCount.java +++ b/backend/baton/src/main/java/touch/baton/domain/member/command/vo/ReviewCount.java @@ -24,4 +24,8 @@ public class ReviewCount { public ReviewCount(final int value) { this.value = value; } + + public void increase() { + value += 1; + } } diff --git a/backend/baton/src/main/java/touch/baton/domain/member/query/repository/RankQuerydslRepository.java b/backend/baton/src/main/java/touch/baton/domain/member/query/repository/RankQuerydslRepository.java index 06f741d2b..0e5456587 100644 --- a/backend/baton/src/main/java/touch/baton/domain/member/query/repository/RankQuerydslRepository.java +++ b/backend/baton/src/main/java/touch/baton/domain/member/query/repository/RankQuerydslRepository.java @@ -4,6 +4,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Repository; import touch.baton.domain.member.command.Supporter; +import touch.baton.domain.member.command.vo.ReviewCount; import java.util.List; @@ -19,6 +20,7 @@ public class RankQuerydslRepository { public List findMostReviewSupporterByCount(final int count) { return jpaQueryFactory.selectFrom(supporter) .join(supporter.member, member).fetchJoin() + .where(supporter.reviewCount.ne(new ReviewCount(0))) .orderBy(supporter.reviewCount.value.desc()) .limit(count) .fetch(); diff --git a/backend/baton/src/main/java/touch/baton/domain/runnerpost/command/RunnerPost.java b/backend/baton/src/main/java/touch/baton/domain/runnerpost/command/RunnerPost.java index bc5b983bc..86e2d2721 100644 --- a/backend/baton/src/main/java/touch/baton/domain/runnerpost/command/RunnerPost.java +++ b/backend/baton/src/main/java/touch/baton/domain/runnerpost/command/RunnerPost.java @@ -210,6 +210,7 @@ public void addAllRunnerPostTags(final List postTags) { public void finishReview() { updateReviewStatus(ReviewStatus.DONE); + this.supporter.increaseReviewCount(); } public void finishFeedback() { diff --git a/backend/baton/src/main/java/touch/baton/domain/runnerpost/command/service/RunnerPostCommandService.java b/backend/baton/src/main/java/touch/baton/domain/runnerpost/command/service/RunnerPostCommandService.java index 6d6d2a292..0a29c58dc 100644 --- a/backend/baton/src/main/java/touch/baton/domain/runnerpost/command/service/RunnerPostCommandService.java +++ b/backend/baton/src/main/java/touch/baton/domain/runnerpost/command/service/RunnerPostCommandService.java @@ -20,6 +20,7 @@ import touch.baton.domain.runnerpost.command.service.dto.RunnerPostApplicantCreateRequest; import touch.baton.domain.runnerpost.command.service.dto.RunnerPostCreateRequest; import touch.baton.domain.runnerpost.command.service.dto.RunnerPostUpdateRequest; +import touch.baton.domain.runnerpost.query.repository.RunnerPostQueryRepository; import touch.baton.domain.tag.command.RunnerPostTag; import touch.baton.domain.tag.command.Tag; import touch.baton.domain.tag.command.repository.TagCommandRepository; @@ -34,6 +35,7 @@ public class RunnerPostCommandService { private final RunnerPostCommandRepository runnerPostCommandRepository; + private final RunnerPostQueryRepository runnerPostQueryRepository; private final TagCommandRepository tagCommandRepository; private final SupporterCommandRepository supporterCommandRepository; private final SupporterRunnerPostCommandRepository supporterRunnerPostCommandRepository; @@ -125,7 +127,7 @@ public Long createRunnerPostApplicant(final Supporter supporter, } public void updateRunnerPostReviewStatusDone(final Long runnerPostId, final Supporter supporter) { - final RunnerPost foundRunnerPost = runnerPostCommandRepository.findById(runnerPostId) + final RunnerPost foundRunnerPost = runnerPostQueryRepository.joinSupporterByRunnerPostId(runnerPostId) .orElseThrow(() -> new RunnerPostBusinessException("해당 식별자의 러너 게시글이 존재하지 않습니다.")); if (Objects.isNull(foundRunnerPost.getSupporter())) { diff --git a/backend/baton/src/main/java/touch/baton/domain/runnerpost/query/repository/RunnerPostPageRepository.java b/backend/baton/src/main/java/touch/baton/domain/runnerpost/query/repository/RunnerPostPageRepository.java index 086afbc69..9e6566e49 100644 --- a/backend/baton/src/main/java/touch/baton/domain/runnerpost/query/repository/RunnerPostPageRepository.java +++ b/backend/baton/src/main/java/touch/baton/domain/runnerpost/query/repository/RunnerPostPageRepository.java @@ -45,7 +45,8 @@ public Page pageByReviewStatusAndTagReducedName(final Long previousL .where(tag.tagReducedName.eq(tagReducedName)); } - final JPAQuery countQuery = jpaQueryFactory.selectFrom(runnerPost); + final JPAQuery countQuery = jpaQueryFactory.selectFrom(runnerPost) + .where(reviewStatusEq(reviewStatus)); if (tagReducedName != null) { countQuery.leftJoin(runnerPost.runnerPostTags.runnerPostTags, runnerPostTag) diff --git a/backend/baton/src/test/java/touch/baton/domain/member/query/repository/RankQuerydslRepositoryTest.java b/backend/baton/src/test/java/touch/baton/domain/member/query/repository/RankQuerydslRepositoryTest.java index 0097ee79e..a517d4a29 100644 --- a/backend/baton/src/test/java/touch/baton/domain/member/query/repository/RankQuerydslRepositoryTest.java +++ b/backend/baton/src/test/java/touch/baton/domain/member/query/repository/RankQuerydslRepositoryTest.java @@ -37,4 +37,25 @@ void findMostReviewSupporterByCount() { () -> assertThat(actual.get(1).getReviewCount().getValue()).isEqualTo(4) ); } + + @DisplayName("Supporter의 count가 안되더라도 ReviewCount가 0이면 조회되지 않는다.") + @Test + void findMostReviewSupporterByCount_having_count_is_zero() { + // given + persistSupporter(new ReviewCount(0), MemberFixture.createEthan()); + persistSupporter(new ReviewCount(3), MemberFixture.createHyena()); + persistSupporter(new ReviewCount(8), MemberFixture.createDitoo()); + + // when + final int count = 3; + final int zeroCount = 1; + final List actual = rankQueryDslRepository.findMostReviewSupporterByCount(count); + + // then + assertAll( + () -> assertThat(actual).hasSize(count - zeroCount), + () -> assertThat(actual.get(0).getReviewCount().getValue()).isEqualTo(8), + () -> assertThat(actual.get(1).getReviewCount().getValue()).isEqualTo(3) + ); + } } 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 306518e61..cf2fee683 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 @@ -30,7 +30,6 @@ void setUp() { @Test void readMostReviewSupporter() { // given - for (int reviewedCount = 0; reviewedCount < 5; reviewedCount++) { persistSupporter(new ReviewCount(reviewedCount), MemberFixture.create(memberName("member" + reviewedCount))); } @@ -73,6 +72,48 @@ void readMostReviewSupporter() { ); } + @DisplayName("Supporter의 ReviewCount가 높은 순으로 count 개수 만큼 조회하고, 그 중 ReviewCount가 0이면 제외된다.") + @Test + void readMostReviewSupporter_when_has_zero_reviewCount() { + // given + final TechnicalTag javaTag = technicalTagQueryRepository.save(TechnicalTagFixture.createJava()); + final TechnicalTag springTag = technicalTagQueryRepository.save(TechnicalTagFixture.createSpring()); + final TechnicalTag reactTag = technicalTagQueryRepository.save(TechnicalTagFixture.createReact()); + + final Member fourthRankMember = persistMember(MemberFixture.create(memberName("fourth"))); + final List fourthRankMembersTechnicalTags = List.of(javaTag, springTag); + persistSupporter(new ReviewCount(12), fourthRankMember, fourthRankMembersTechnicalTags); + + final Member thirdRankMember = persistMember(MemberFixture.create(memberName("third"))); + final List thirdRankMembersTechnicalTags = List.of(javaTag, reactTag); + persistSupporter(new ReviewCount(13), thirdRankMember, thirdRankMembersTechnicalTags); + + final Member firstRankMember = persistMember(MemberFixture.create(memberName("first"))); + final List firstRankMembersTechnicalTags = List.of(javaTag, springTag); + persistSupporter(new ReviewCount(15), firstRankMember, firstRankMembersTechnicalTags); + + final Member secondRankMember = persistMember(MemberFixture.create(memberName("second"))); + final List secondRankMembersTechnicalTags = List.of(javaTag); + persistSupporter(new ReviewCount(14), secondRankMember, secondRankMembersTechnicalTags); + + final Member fifthRankMember = persistMember(MemberFixture.create(memberName("fifth"))); + final List fifthMembersTechnicalTags = List.of(reactTag); + persistSupporter(new ReviewCount(0), fifthRankMember, fifthMembersTechnicalTags); + + // when + final int maxCount = 5; + final RankResponses actual = rankQueryService.readMostReviewSupporter(maxCount); + + // then + assertAll( + () -> assertThat(actual.data()).hasSize(4), + () -> assertResponse(actual.data().get(0), 1, "first", 15), + () -> assertResponse(actual.data().get(1), 2, "second", 14), + () -> assertResponse(actual.data().get(2), 3, "third", 13), + () -> assertResponse(actual.data().get(3), 4, "fourth", 12) + ); + } + private static void assertResponse(final RankResponses.SupporterRank response, final int rank, final String memberName, final int reviewCount) { assertAll( () -> assertThat(response.rank()).isEqualTo(rank), diff --git a/backend/baton/src/test/java/touch/baton/domain/member/vo/ReviewCountTest.java b/backend/baton/src/test/java/touch/baton/domain/member/vo/ReviewCountTest.java new file mode 100644 index 000000000..06ec79a7a --- /dev/null +++ b/backend/baton/src/test/java/touch/baton/domain/member/vo/ReviewCountTest.java @@ -0,0 +1,24 @@ +package touch.baton.domain.member.vo; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import touch.baton.domain.member.command.vo.ReviewCount; + +import static org.assertj.core.api.Assertions.assertThat; + +class ReviewCountTest { + + @DisplayName("increaseCount가 호출 되면 value가 1 증가한다.") + @Test + void increaseCount() { + // given + final int initialValue = 0; + final ReviewCount reviewCount = new ReviewCount(initialValue); + + // when + reviewCount.increase(); + + // then + assertThat(reviewCount.getValue()).isEqualTo(initialValue + 1); + } +} diff --git a/backend/baton/src/test/java/touch/baton/domain/runnerpost/RunnerPostTest.java b/backend/baton/src/test/java/touch/baton/domain/runnerpost/RunnerPostTest.java index f92dbdb91..81f02f634 100644 --- a/backend/baton/src/test/java/touch/baton/domain/runnerpost/RunnerPostTest.java +++ b/backend/baton/src/test/java/touch/baton/domain/runnerpost/RunnerPostTest.java @@ -1,5 +1,6 @@ package touch.baton.domain.runnerpost; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; @@ -71,11 +72,16 @@ class RunnerPostTest { .runnerTechnicalTags(RunnerTechnicalTagsFixture.create(new ArrayList<>())) .build(); - private final Supporter supporter = Supporter.builder() - .reviewCount(new ReviewCount(10)) - .member(supporterMember) - .supporterTechnicalTags(new SupporterTechnicalTags(new ArrayList<>())) - .build(); + private Supporter supporter; + + @BeforeEach + void setUp() { + supporter = Supporter.builder() + .reviewCount(new ReviewCount(10)) + .member(supporterMember) + .supporterTechnicalTags(new SupporterTechnicalTags(new ArrayList<>())) + .build(); + } @DisplayName("runnerPostTags 전체를 추가할 수 있다.") @Test @@ -584,4 +590,34 @@ void fail_same_to_same(final ReviewStatus reviewStatus) { .isInstanceOf(RunnerPostDomainException.class); } } + + @DisplayName("리뷰완료가 되면 ReviewStatus가 Done으로 바뀌고 리뷰를 작성한 ReviewCount가 1 증가한다.") + @Test + void finishReview() { + // given + final ReviewCount originReviewCount = new ReviewCount(supporter.getReviewCount().getValue()); + final RunnerPost runnerPost = RunnerPost.builder() + .title(new Title("러너가 작성하는 리뷰 요청 게시글의 테스트 제목입니다.")) + .implementedContents(new ImplementedContents("안녕하세요. 테스트 내용입니다.")) + .curiousContents(new CuriousContents("궁금한 점입니다.")) + .postscriptContents(new PostscriptContents("잘 부탁드립니다.")) + .pullRequestUrl(new PullRequestUrl("https://github.com")) + .deadline(new Deadline(LocalDateTime.now().plusHours(100))) + .watchedCount(new WatchedCount(0)) + .reviewStatus(ReviewStatus.IN_PROGRESS) + .isReviewed(IsReviewed.notReviewed()) + .runner(runner) + .supporter(supporter) + .runnerPostTags(new RunnerPostTags(new ArrayList<>())) + .build(); + + // when + runnerPost.finishReview(); + + // then + assertAll( + () -> assertThat(runnerPost.getReviewStatus()).isEqualTo(ReviewStatus.DONE), + () -> assertThat(supporter.getReviewCount()).isEqualTo(new ReviewCount(originReviewCount.getValue() + 1)) + ); + } } diff --git a/backend/baton/src/test/java/touch/baton/domain/runnerpost/command/service/RunnerPostCommandServiceCreateTest.java b/backend/baton/src/test/java/touch/baton/domain/runnerpost/command/service/RunnerPostCommandServiceCreateTest.java index e069c2963..84d510b4e 100644 --- a/backend/baton/src/test/java/touch/baton/domain/runnerpost/command/service/RunnerPostCommandServiceCreateTest.java +++ b/backend/baton/src/test/java/touch/baton/domain/runnerpost/command/service/RunnerPostCommandServiceCreateTest.java @@ -52,6 +52,7 @@ class RunnerPostCommandServiceCreateTest extends ServiceTestConfig { void setUp() { runnerPostCommandService = new RunnerPostCommandService( runnerPostCommandRepository, + runnerPostQueryRepository, tagCommandRepository, supporterCommandRepository, supporterRunnerPostCommandRepository, diff --git a/backend/baton/src/test/java/touch/baton/domain/runnerpost/command/service/RunnerPostCommandServiceDeleteTest.java b/backend/baton/src/test/java/touch/baton/domain/runnerpost/command/service/RunnerPostCommandServiceDeleteTest.java index ea25d3e5b..54e574952 100644 --- a/backend/baton/src/test/java/touch/baton/domain/runnerpost/command/service/RunnerPostCommandServiceDeleteTest.java +++ b/backend/baton/src/test/java/touch/baton/domain/runnerpost/command/service/RunnerPostCommandServiceDeleteTest.java @@ -29,6 +29,7 @@ class RunnerPostCommandServiceDeleteTest extends ServiceTestConfig { void setUp() { runnerPostCommandService = new RunnerPostCommandService( runnerPostCommandRepository, + runnerPostQueryRepository, tagCommandRepository, supporterCommandRepository, supporterRunnerPostCommandRepository, diff --git a/backend/baton/src/test/java/touch/baton/domain/runnerpost/command/service/RunnerPostCommandServiceEventTest.java b/backend/baton/src/test/java/touch/baton/domain/runnerpost/command/service/RunnerPostCommandServiceEventTest.java index 00042c60b..ae337c208 100644 --- a/backend/baton/src/test/java/touch/baton/domain/runnerpost/command/service/RunnerPostCommandServiceEventTest.java +++ b/backend/baton/src/test/java/touch/baton/domain/runnerpost/command/service/RunnerPostCommandServiceEventTest.java @@ -37,6 +37,7 @@ class RunnerPostCommandServiceEventTest extends ServiceTestConfig { void setUp() { runnerPostCommandService = new RunnerPostCommandService( runnerPostCommandRepository, + runnerPostQueryRepository, tagCommandRepository, supporterCommandRepository, supporterRunnerPostCommandRepository, diff --git a/backend/baton/src/test/java/touch/baton/domain/runnerpost/command/service/RunnerPostCommandServiceUpdateTest.java b/backend/baton/src/test/java/touch/baton/domain/runnerpost/command/service/RunnerPostCommandServiceUpdateTest.java index 4beaca789..083706095 100644 --- a/backend/baton/src/test/java/touch/baton/domain/runnerpost/command/service/RunnerPostCommandServiceUpdateTest.java +++ b/backend/baton/src/test/java/touch/baton/domain/runnerpost/command/service/RunnerPostCommandServiceUpdateTest.java @@ -7,6 +7,7 @@ import touch.baton.domain.member.command.Member; import touch.baton.domain.member.command.Runner; import touch.baton.domain.member.command.Supporter; +import touch.baton.domain.member.command.vo.ReviewCount; import touch.baton.domain.runnerpost.command.RunnerPost; import touch.baton.domain.runnerpost.command.exception.RunnerPostBusinessException; import touch.baton.domain.runnerpost.command.exception.RunnerPostDomainException; @@ -43,6 +44,7 @@ class RunnerPostCommandServiceUpdateTest extends ServiceTestConfig { void setUp() { runnerPostCommandService = new RunnerPostCommandService( runnerPostCommandRepository, + runnerPostQueryRepository, tagCommandRepository, supporterCommandRepository, supporterRunnerPostCommandRepository, @@ -143,6 +145,7 @@ void updateRunnerPostReviewStatusDone() { // given final IsReviewed isReviewed = IsReviewed.notReviewed(); final RunnerPost targetRunnerPost = runnerPostQueryRepository.save(RunnerPostFixture.createWithSupporter(runner, assignedSupporter, IN_PROGRESS, isReviewed)); + final ReviewCount originalReviewCount = new ReviewCount(assignedSupporter.getReviewCount().getValue()); // when runnerPostCommandService.updateRunnerPostReviewStatusDone(targetRunnerPost.getId(), assignedSupporter); @@ -152,6 +155,7 @@ void updateRunnerPostReviewStatusDone() { assertThat(maybeRunnerPost).isPresent(); final RunnerPost actualRunnerPost = maybeRunnerPost.get(); assertThat(actualRunnerPost.getReviewStatus()).isEqualTo(ReviewStatus.DONE); + assertThat(assignedSupporter.getReviewCount()).isEqualTo(new ReviewCount(originalReviewCount.getValue() + 1)); } @DisplayName("없는 게시글의 상태를 리뷰 완료로 변경할 수 없다.") diff --git a/backend/baton/src/test/java/touch/baton/domain/runnerpost/command/service/RunnerPostUpdateApplicantCancelationServiceTest.java b/backend/baton/src/test/java/touch/baton/domain/runnerpost/command/service/RunnerPostUpdateApplicantCancelationServiceTest.java index 4d50c0ec3..ca267021b 100644 --- a/backend/baton/src/test/java/touch/baton/domain/runnerpost/command/service/RunnerPostUpdateApplicantCancelationServiceTest.java +++ b/backend/baton/src/test/java/touch/baton/domain/runnerpost/command/service/RunnerPostUpdateApplicantCancelationServiceTest.java @@ -35,6 +35,7 @@ class RunnerPostUpdateApplicantCancelationServiceTest extends ServiceTestConfig void setUp() { runnerPostCommandService = new RunnerPostCommandService( runnerPostCommandRepository, + runnerPostQueryRepository, tagCommandRepository, supporterCommandRepository, supporterRunnerPostCommandRepository, diff --git a/backend/baton/src/test/java/touch/baton/domain/runnerpost/query/service/RunnerPostQueryServiceTest.java b/backend/baton/src/test/java/touch/baton/domain/runnerpost/query/service/RunnerPostQueryServiceTest.java index d291336ed..a848a283a 100644 --- a/backend/baton/src/test/java/touch/baton/domain/runnerpost/query/service/RunnerPostQueryServiceTest.java +++ b/backend/baton/src/test/java/touch/baton/domain/runnerpost/query/service/RunnerPostQueryServiceTest.java @@ -77,7 +77,7 @@ void readRunnerPostByPageInfoAndTagNameAndReviewStatus_firstPage() { final Tag javaTag = tagCommandRepository.save(TagFixture.create(tagName("자바"))); final Tag springTag = tagCommandRepository.save(TagFixture.create(tagName("스프링"))); - final int totalJavaTagPost = 3; + final int totalJavaTagAndNotStartedPost = 2; final RunnerPost expectedRunnerPostOne = runnerPostQueryRepository.save(RunnerPostFixture.create( hyenaRunner, @@ -124,7 +124,7 @@ void readRunnerPostByPageInfoAndTagNameAndReviewStatus_firstPage() { List.of(RunnerPostResponse.Simple.of(expectedRunnerPostTwo, 0L, runnerPostTags), RunnerPostResponse.Simple.of(expectedRunnerPostOne, 0L, runnerPostTags)), pageParams, - totalJavaTagPost + totalJavaTagAndNotStartedPost ); // then @@ -140,7 +140,7 @@ void readRunnerPostByPageInfoAndTagNameAndReviewStatus_middlePage() { final Tag javaTag = tagCommandRepository.save(TagFixture.create(tagName("자바"))); final Tag springTag = tagCommandRepository.save(TagFixture.create(tagName("스프링"))); - final int totalJavaTagPost = 4; + final int totalJavaTagAndNotStartedPost = 3; final RunnerPost expectedRunnerPostOne = runnerPostQueryRepository.save(RunnerPostFixture.create( hyenaRunner, @@ -194,7 +194,7 @@ void readRunnerPostByPageInfoAndTagNameAndReviewStatus_middlePage() { List.of(RunnerPostResponse.Simple.of(expectedRunnerPostTwo, 0L, runnerPostTags), RunnerPostResponse.Simple.of(expectedRunnerPostOne, 0L, runnerPostTags)), pageParams, - totalJavaTagPost + totalJavaTagAndNotStartedPost ); // then @@ -210,7 +210,7 @@ void readRunnerPostByPageInfoAndReviewStatus_firstPage() { final Tag javaTag = tagCommandRepository.save(TagFixture.create(tagName("자바"))); final Tag springTag = tagCommandRepository.save(TagFixture.create(tagName("스프링"))); - final int totalPost = 4; + final int totalNotStartedPost = 3; final RunnerPost expectedRunnerPostOne = runnerPostQueryRepository.save(RunnerPostFixture.create( hyenaRunner, @@ -260,7 +260,7 @@ void readRunnerPostByPageInfoAndReviewStatus_firstPage() { RunnerPostResponse.Simple.of(expectedRunnerPostTwo, 0L, runnerPostTags), RunnerPostResponse.Simple.of(expectedRunnerPostOne, 0L, runnerPostTags)), pageParams, - totalPost + totalNotStartedPost ); // then @@ -276,7 +276,7 @@ void readRunnerPostByPageInfoAndReviewStatus_middlePage() { final Tag javaTag = tagCommandRepository.save(TagFixture.create(tagName("자바"))); final Tag springTag = tagCommandRepository.save(TagFixture.create(tagName("스프링"))); - final int totalPost = 5; + final int notStartedPost = 4; final RunnerPost expectedRunnerPostOne = runnerPostQueryRepository.save(RunnerPostFixture.create( hyenaRunner, @@ -332,7 +332,7 @@ void readRunnerPostByPageInfoAndReviewStatus_middlePage() { RunnerPostResponse.Simple.of(expectedRunnerPostTwo, 0L, runnerPostTags), RunnerPostResponse.Simple.of(expectedRunnerPostOne, 0L, runnerPostTags)), pageParams, - totalPost + notStartedPost ); // then