From df97d5e52fd112397654219b106b4d1b6c9756f4 Mon Sep 17 00:00:00 2001 From: morenow Date: Tue, 3 Sep 2024 13:04:25 +0900 Subject: [PATCH] =?UTF-8?q?Test(Problem):=20=EC=9E=90=EA=B2=A9=EC=A6=9D?= =?UTF-8?q?=EB=A7=88=EB=8B=A4=20=EC=9D=B8=EB=8D=B1=EC=8A=A4=EB=A5=BC=20?= =?UTF-8?q?=EB=B6=84=EB=A6=AC=ED=95=9C=20=EB=B3=80=EA=B2=BD=EC=97=90=20?= =?UTF-8?q?=EB=94=B0=EB=A5=B8=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=BD=94?= =?UTF-8?q?=EB=93=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FindSimilarProblemsUseCaseTest.java | 22 ++++++++++++++----- .../SimilarProblemsProviderTest.java | 10 +++++---- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/jabiseo-api/src/test/java/com/jabiseo/problem/application/usecase/FindSimilarProblemsUseCaseTest.java b/jabiseo-api/src/test/java/com/jabiseo/problem/application/usecase/FindSimilarProblemsUseCaseTest.java index 0303855..d800f5e 100644 --- a/jabiseo-api/src/test/java/com/jabiseo/problem/application/usecase/FindSimilarProblemsUseCaseTest.java +++ b/jabiseo-api/src/test/java/com/jabiseo/problem/application/usecase/FindSimilarProblemsUseCaseTest.java @@ -1,6 +1,8 @@ package com.jabiseo.problem.application.usecase; +import com.jabiseo.certificate.domain.Certificate; import com.jabiseo.opensearch.SimilarProblemsProvider; +import com.jabiseo.problem.domain.Problem; import com.jabiseo.problem.domain.ProblemRepository; import com.jabiseo.problem.dto.FindSimilarProblemResponse; import com.jabiseo.problem.dto.ProblemWithBookmarkSummaryQueryDto; @@ -12,7 +14,10 @@ import org.mockito.junit.jupiter.MockitoExtension; import java.util.List; +import java.util.Optional; +import static fixture.CertificateFixture.createCertificate; +import static fixture.ProblemFixture.createProblem; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.BDDMockito.given; @@ -31,21 +36,26 @@ class FindSimilarProblemsUseCaseTest { @Test @DisplayName("유사 문제 조회를 성공한다.") - void givenMemberIdAndProblemId_whenFindingSimilarProblems_thenFindSimilarProblems() throws Exception { + void givenMemberIdAndProblemId_whenFindingSimilarProblems_thenFindSimilarProblems() { //given Long memberId = 1L; Long problemId = 2L; Long examId = 3L; Long subjectId = 4L; + Long certificateId = 5L; List similarProblemIds = List.of(5L, 6L, 7L); + + Certificate certificate = createCertificate(certificateId); + Problem problem = createProblem(problemId, certificate); List problemWithBookmarkSummaryQueryDtos = similarProblemIds.stream() - .map(id -> new ProblemWithBookmarkSummaryQueryDto( - id, "문제", false, examId, "설명", subjectId, "이름", 1 - )) - .toList(); + .map(id -> new ProblemWithBookmarkSummaryQueryDto( + id, "문제", false, examId, "설명", subjectId, "이름", 1 + )) + .toList(); - given(similarProblemsProvider.getSimilarProblems(problemId, 3)).willReturn(similarProblemIds); + given(similarProblemsProvider.getSimilarProblems(problemId, certificateId, 3)).willReturn(similarProblemIds); + given(problemRepository.findById(problemId)).willReturn(Optional.of(problem)); given(problemRepository.findSummaryByIdsInWithBookmark(memberId, similarProblemIds)).willReturn(problemWithBookmarkSummaryQueryDtos); //when diff --git a/jabiseo-infrastructure/src/test/java/com/jabiseo/opensearch/SimilarProblemsProviderTest.java b/jabiseo-infrastructure/src/test/java/com/jabiseo/opensearch/SimilarProblemsProviderTest.java index cbad6d8..27b92fc 100644 --- a/jabiseo-infrastructure/src/test/java/com/jabiseo/opensearch/SimilarProblemsProviderTest.java +++ b/jabiseo-infrastructure/src/test/java/com/jabiseo/opensearch/SimilarProblemsProviderTest.java @@ -41,13 +41,14 @@ class SimilarProblemsProviderTest { @DisplayName("redis 캐시에 유사 문제 id가 저장되어 있는 경우 Opensearch와 통신하지 않는다.") void givenCachedProblemId_whenFindSimilarProblemIds_thenDontConnectWithOpenSearch() throws Exception { //given - Long problemId = 1L; + Long certificateId = 1L; //정보처리기사 + Long problemId = 2L; int similarProblemsSize = 3; given(similarProblemIdCacheRepository.findById(problemId)) .willReturn(Optional.of(new SimilarProblemIdCache(problemId, List.of(2L, 3L, 4L)))); //when - sut.getSimilarProblems(problemId, similarProblemsSize); + sut.getSimilarProblems(problemId, certificateId, similarProblemsSize); //then verify(openSearchClient, never()).get((GetRequest) any(), any()); @@ -58,14 +59,15 @@ void givenCachedProblemId_whenFindSimilarProblemIds_thenDontConnectWithOpenSearc @DisplayName("opensearch에 문제 벡터 조회 시 오류가 발생하면 NetworkApiException을 던진다.") void givenErrorInOpenSearchConnection_whenFindSimilarProblems_thenThrowNetworkApiException() throws Exception { //given - Long problemId = 1L; + Long certificateId = 1L; //정보처리기사 + Long problemId = 2L; int similarProblemsSize = 3; given(similarProblemIdCacheRepository.findById(problemId)).willReturn(Optional.empty()); given(openSearchClient.get((GetRequest) any(), any())).willThrow(new IOException()); //when & then - assertThatThrownBy(() -> sut.getSimilarProblems(problemId, similarProblemsSize)) + assertThatThrownBy(() -> sut.getSimilarProblems(problemId, certificateId, similarProblemsSize)) .isInstanceOf(NetworkApiException.class) .hasFieldOrPropertyWithValue("errorCode", NetworkApiErrorCode.OPENSEARCH_API_FAIL); }