From b105ee5063f3217a1ee2f4f85745a6da05f74ba4 Mon Sep 17 00:00:00 2001 From: MangKyu Date: Tue, 1 Feb 2022 03:40:19 +0900 Subject: [PATCH] Modify findQuiz enabled only --- .../app/quiz/repository/QuizRepository.java | 24 +++++++++---------- .../app/quiz/service/QuizService.java | 6 ++--- .../quiz/repository/QuizRepositoryTest.java | 23 +++++++++--------- .../app/quiz/service/QuizServiceTest.java | 8 +++---- 4 files changed, 30 insertions(+), 31 deletions(-) diff --git a/src/main/java/com/mangkyu/employment/interview/app/quiz/repository/QuizRepository.java b/src/main/java/com/mangkyu/employment/interview/app/quiz/repository/QuizRepository.java index 4e567b9..98b4ed5 100644 --- a/src/main/java/com/mangkyu/employment/interview/app/quiz/repository/QuizRepository.java +++ b/src/main/java/com/mangkyu/employment/interview/app/quiz/repository/QuizRepository.java @@ -15,28 +15,28 @@ public interface QuizRepository extends JpaRepository, QuizRepositor Optional findByResourceId(final String resourceId); - Page findByQuizCategoryIs(final QuizCategory quizCategory, final Pageable pageable); + Page findByQuizCategoryIsAndIsEnableTrue(final QuizCategory quizCategory, final Pageable pageable); - Long countByQuizCategory(final QuizCategory category); + Long countByQuizCategoryAndIsEnableTrue(final QuizCategory category); - default List customFindByIdNotInAndQuizLevel(final Set quizIdSet, final QuizLevel quizLevel) { + default List customFindByIdNotInAndQuizLevelAndIsEnableTrue(final Set quizIdSet, final QuizLevel quizLevel) { return quizIdSet.isEmpty() - ? findByQuizLevel(quizLevel) - : findByIdNotInAndQuizLevel(quizIdSet, quizLevel); + ? findByQuizLevelAndIsEnableTrue(quizLevel) + : findByIdNotInAndQuizLevelAndIsEnableTrue(quizIdSet, quizLevel); } - List findByQuizLevel(final QuizLevel quizLevel); + List findByQuizLevelAndIsEnableTrue(final QuizLevel quizLevel); - List findByIdNotInAndQuizLevel(final Set quizIdSet, final QuizLevel quizLevel); + List findByIdNotInAndQuizLevelAndIsEnableTrue(final Set quizIdSet, final QuizLevel quizLevel); - default List customFindByIdNotInAndQuizCategoryInAndQuizLevel(final Set quizIdSet, final Set quizCategorySet, final QuizLevel quizLevel) { + default List customFindByIdNotInAndQuizCategoryInAndQuizLevelAndIsEnableTrue(final Set quizIdSet, final Set quizCategorySet, final QuizLevel quizLevel) { return quizIdSet.isEmpty() - ? findByQuizCategoryInAndQuizLevel(quizCategorySet, quizLevel) - : findByIdNotInAndQuizCategoryInAndQuizLevel(quizIdSet, quizCategorySet, quizLevel); + ? findByQuizCategoryInAndQuizLevelAndIsEnableTrue(quizCategorySet, quizLevel) + : findByIdNotInAndQuizCategoryInAndQuizLevelAndIsEnableTrue(quizIdSet, quizCategorySet, quizLevel); } - List findByQuizCategoryInAndQuizLevel(final Set quizCategorySet, final QuizLevel quizLevel); + List findByQuizCategoryInAndQuizLevelAndIsEnableTrue(final Set quizCategorySet, final QuizLevel quizLevel); - List findByIdNotInAndQuizCategoryInAndQuizLevel(final Set quizIdSet, final Set quizCategorySet, final QuizLevel quizLevel); + List findByIdNotInAndQuizCategoryInAndQuizLevelAndIsEnableTrue(final Set quizIdSet, final Set quizCategorySet, final QuizLevel quizLevel); } \ No newline at end of file diff --git a/src/main/java/com/mangkyu/employment/interview/app/quiz/service/QuizService.java b/src/main/java/com/mangkyu/employment/interview/app/quiz/service/QuizService.java index 7e77275..358cc80 100644 --- a/src/main/java/com/mangkyu/employment/interview/app/quiz/service/QuizService.java +++ b/src/main/java/com/mangkyu/employment/interview/app/quiz/service/QuizService.java @@ -53,7 +53,7 @@ public class QuizService { public GetQuizResponseHolder getQuizList(final GetQuizRequest getQuizRequest) { final PageRequest pageRequest = PageRequest.of(getQuizRequest.getPage(), getQuizRequest.getSize()); - final Page quizPage = quizRepository.findByQuizCategoryIs(getQuizRequest.getCategory(), pageRequest); + final Page quizPage = quizRepository.findByQuizCategoryIsAndIsEnableTrue(getQuizRequest.getCategory(), pageRequest); final List quizResponseList = quizPage.getContent().stream() .map(QuizDtoConverter::convert) @@ -75,7 +75,7 @@ public class QuizService { .map(v -> v.getQuiz().getId()) .collect(Collectors.toSet()); - return quizRepository.customFindByIdNotInAndQuizCategoryInAndQuizLevel(solvedQuizIdList, quizCategorySet, quizLevel); + return quizRepository.customFindByIdNotInAndQuizCategoryInAndQuizLevelAndIsEnableTrue(solvedQuizIdList, quizCategorySet, quizLevel); } public List getRandomQuizListUnderLimit(final List quizList, final Integer quizSize) { @@ -107,7 +107,7 @@ public class QuizService { private QuizCategoryResponse convertToQuizCategoryResponse(final EnumMapperValue enumMapperValue) { return QuizCategoryResponse.builder() - .count(quizRepository.countByQuizCategory(QuizCategory.valueOf(enumMapperValue.name()))) + .count(quizRepository.countByQuizCategoryAndIsEnableTrue(QuizCategory.valueOf(enumMapperValue.name()))) .code(enumMapperValue.getCode()) .title(enumMapperValue.getTitle()) .desc(enumMapperValue.getDesc()) diff --git a/src/test/java/com/mangkyu/employment/interview/app/quiz/repository/QuizRepositoryTest.java b/src/test/java/com/mangkyu/employment/interview/app/quiz/repository/QuizRepositoryTest.java index 605cecf..fb51b0e 100644 --- a/src/test/java/com/mangkyu/employment/interview/app/quiz/repository/QuizRepositoryTest.java +++ b/src/test/java/com/mangkyu/employment/interview/app/quiz/repository/QuizRepositoryTest.java @@ -1,7 +1,6 @@ package com.mangkyu.employment.interview.app.quiz.repository; import com.mangkyu.employment.interview.JpaTestConfig; -import com.mangkyu.employment.interview.app.answer.entity.Answer; import com.mangkyu.employment.interview.app.answer.repository.AnswerRepository; import com.mangkyu.employment.interview.app.quiz.dto.QuizSearchCondition; import com.mangkyu.employment.interview.app.quiz.entity.Quiz; @@ -209,14 +208,14 @@ class QuizRepositoryTest { long result = 0; while (hasNext) { final PageRequest pageRequest = PageRequest.of(page++, size); - final Page pageQuiz = quizRepository.findByQuizCategoryIs(quizCategory, pageRequest); + final Page pageQuiz = quizRepository.findByQuizCategoryIsAndIsEnableTrue(quizCategory, pageRequest); result += pageQuiz.getContent().size(); hasNext = pageQuiz.hasNext(); } // then - assertThat(result).isEqualTo(quizRepository.countByQuizCategory(quizCategory)); + assertThat(result).isEqualTo(quizRepository.countByQuizCategoryAndIsEnableTrue(quizCategory)); } @Test @@ -233,8 +232,8 @@ class QuizRepositoryTest { quizRepository.save(quiz4); // when - final Long result1 = quizRepository.countByQuizCategory(QuizCategory.JAVA); - final Long result2 = quizRepository.countByQuizCategory(QuizCategory.DATABASE); + final Long result1 = quizRepository.countByQuizCategoryAndIsEnableTrue(QuizCategory.JAVA); + final Long result2 = quizRepository.countByQuizCategoryAndIsEnableTrue(QuizCategory.DATABASE); // then assertThat(result1).isEqualTo(3); @@ -270,10 +269,10 @@ class QuizRepositoryTest { final Set idSet = new HashSet<>(Arrays.asList(savedQuiz1.getId(), savedQuiz2.getId(), savedQuiz3.getId(), savedQuiz4.getId())); // when - final List unsolvedQuizList1 = quizRepository.customFindByIdNotInAndQuizCategoryInAndQuizLevel(Collections.emptySet(), new HashSet<>(Arrays.asList(QuizCategory.JAVA, QuizCategory.ALGORITHM, QuizCategory.CULTURE)), QuizLevel.NEW); - final List unsolvedQuizList2 = quizRepository.customFindByIdNotInAndQuizCategoryInAndQuizLevel(Collections.emptySet(), new HashSet<>(Arrays.asList(QuizCategory.CULTURE, QuizCategory.NETWORK)), QuizLevel.NEW); - final List unsolvedQuizList3 = quizRepository.customFindByIdNotInAndQuizCategoryInAndQuizLevel(Collections.emptySet(), new HashSet<>(Arrays.asList(QuizCategory.JAVA, QuizCategory.ALGORITHM, QuizCategory.DATABASE)), QuizLevel.NEW); - final List unsolvedQuizList4 = quizRepository.customFindByIdNotInAndQuizCategoryInAndQuizLevel(idSet, new HashSet<>(Arrays.asList(QuizCategory.JAVA, QuizCategory.DATABASE)), QuizLevel.NEW); + final List unsolvedQuizList1 = quizRepository.customFindByIdNotInAndQuizCategoryInAndQuizLevelAndIsEnableTrue(Collections.emptySet(), new HashSet<>(Arrays.asList(QuizCategory.JAVA, QuizCategory.ALGORITHM, QuizCategory.CULTURE)), QuizLevel.NEW); + final List unsolvedQuizList2 = quizRepository.customFindByIdNotInAndQuizCategoryInAndQuizLevelAndIsEnableTrue(Collections.emptySet(), new HashSet<>(Arrays.asList(QuizCategory.CULTURE, QuizCategory.NETWORK)), QuizLevel.NEW); + final List unsolvedQuizList3 = quizRepository.customFindByIdNotInAndQuizCategoryInAndQuizLevelAndIsEnableTrue(Collections.emptySet(), new HashSet<>(Arrays.asList(QuizCategory.JAVA, QuizCategory.ALGORITHM, QuizCategory.DATABASE)), QuizLevel.NEW); + final List unsolvedQuizList4 = quizRepository.customFindByIdNotInAndQuizCategoryInAndQuizLevelAndIsEnableTrue(idSet, new HashSet<>(Arrays.asList(QuizCategory.JAVA, QuizCategory.DATABASE)), QuizLevel.NEW); // then assertThat(unsolvedQuizList1.size()).isEqualTo(2); @@ -296,8 +295,8 @@ class QuizRepositoryTest { final Quiz savedQuiz4 = quizRepository.save(quiz4); // when - final List unsolvedQuizList1 = quizRepository.customFindByIdNotInAndQuizLevel(new HashSet<>(Arrays.asList(savedQuiz1.getId(), savedQuiz2.getId())), QuizLevel.NEW); - final List unsolvedQuizList2 = quizRepository.customFindByIdNotInAndQuizLevel(Collections.emptySet(), QuizLevel.NEW); + final List unsolvedQuizList1 = quizRepository.customFindByIdNotInAndQuizLevelAndIsEnableTrue(new HashSet<>(Arrays.asList(savedQuiz1.getId(), savedQuiz2.getId())), QuizLevel.NEW); + final List unsolvedQuizList2 = quizRepository.customFindByIdNotInAndQuizLevelAndIsEnableTrue(Collections.emptySet(), QuizLevel.NEW); // then assertThat(unsolvedQuizList1.size()).isEqualTo(1); @@ -318,7 +317,7 @@ class QuizRepositoryTest { quizRepository.save(quiz4); // when - final List unsolvedQuizList = quizRepository.findByQuizLevel(QuizLevel.NEW); + final List unsolvedQuizList = quizRepository.findByQuizLevelAndIsEnableTrue(QuizLevel.NEW); // then assertThat(unsolvedQuizList.size()).isEqualTo(3); diff --git a/src/test/java/com/mangkyu/employment/interview/app/quiz/service/QuizServiceTest.java b/src/test/java/com/mangkyu/employment/interview/app/quiz/service/QuizServiceTest.java index f0bb0f1..fdfcfed 100644 --- a/src/test/java/com/mangkyu/employment/interview/app/quiz/service/QuizServiceTest.java +++ b/src/test/java/com/mangkyu/employment/interview/app/quiz/service/QuizServiceTest.java @@ -159,7 +159,7 @@ class QuizServiceTest { final Pageable pageable = PageRequest.of(page, size); final PageImpl quizPage = new PageImpl<>(quizList(), pageable, quizList.size()); - doReturn(quizPage).when(quizRepository).findByQuizCategoryIs(any(QuizCategory.class), any(PageRequest.class)); + doReturn(quizPage).when(quizRepository).findByQuizCategoryIsAndIsEnableTrue(any(QuizCategory.class), any(PageRequest.class)); // when final GetQuizResponseHolder result = quizService.getQuizList(request); @@ -203,7 +203,7 @@ class QuizServiceTest { quizCategorySet.add(QuizCategory.EXPERIENCE); doReturn(solvedQuizList).when(solvedQuizRepository).findAllByUser_Id(userId); - doReturn(unsolvedQuizList).when(quizRepository).customFindByIdNotInAndQuizCategoryInAndQuizLevel(solvedQuizIdList, quizCategorySet, quizLevel); + doReturn(unsolvedQuizList).when(quizRepository).customFindByIdNotInAndQuizCategoryInAndQuizLevelAndIsEnableTrue(solvedQuizIdList, quizCategorySet, quizLevel); // when final List result = quizService.getUnsolvedQuizList(userId, quizLevel, quizCategorySet); @@ -224,7 +224,7 @@ class QuizServiceTest { quizCategorySet.add(QuizCategory.EXPERIENCE); doReturn(solvedQuizList).when(solvedQuizRepository).findAllByUser_Id(userId); - doReturn(unsolvedQuizList).when(quizRepository).customFindByIdNotInAndQuizCategoryInAndQuizLevel(Collections.emptySet(), quizCategorySet, quizLevel); + doReturn(unsolvedQuizList).when(quizRepository).customFindByIdNotInAndQuizCategoryInAndQuizLevelAndIsEnableTrue(Collections.emptySet(), quizCategorySet, quizLevel); // when final List result = quizService.getUnsolvedQuizList(userId, quizLevel, quizCategorySet); @@ -270,7 +270,7 @@ class QuizServiceTest { .build(); doReturn(Collections.singletonList(enumMapperValue)).when(enumMapperFactory).get(EnumMapperKey.QUIZ_CATEGORY); - doReturn(count).when(quizRepository).countByQuizCategory(quizCategory); + doReturn(count).when(quizRepository).countByQuizCategoryAndIsEnableTrue(quizCategory); // when final List result = quizService.getQuizCategoryList();