From 993b38dd1f829f8b3d896b0cd2f5d1ebeb5899d3 Mon Sep 17 00:00:00 2001 From: MangKyu Date: Tue, 1 Feb 2022 02:42:32 +0900 Subject: [PATCH] Filter searchQuiz which has answer only --- .../quiz/repository/QuizRepositoryImpl.java | 2 ++ .../quiz/repository/QuizRepositoryTest.java | 29 ++++++++++++++----- 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/mangkyu/employment/interview/app/quiz/repository/QuizRepositoryImpl.java b/src/main/java/com/mangkyu/employment/interview/app/quiz/repository/QuizRepositoryImpl.java index ec397f1..50d56d5 100644 --- a/src/main/java/com/mangkyu/employment/interview/app/quiz/repository/QuizRepositoryImpl.java +++ b/src/main/java/com/mangkyu/employment/interview/app/quiz/repository/QuizRepositoryImpl.java @@ -35,12 +35,14 @@ public class QuizRepositoryImpl implements QuizRepositoryCustom { .where(quizLevelsIn(qQuiz, condition.getLevels())) .offset(pageable.getOffset()) .limit(pageable.getPageSize()) + .where(qQuiz.answer.isNotNull()) .fetch(); final long count = query.selectFrom(qQuiz) .where(titleLike(qQuiz, condition.getQuery())) .where(quizCategoriesIn(qQuiz, condition.getCategories())) .where(quizLevelsIn(qQuiz, condition.getLevels())) + .where(qQuiz.answer.isNotNull()) .stream().count(); return new PageImpl<>(quizList, pageable, count); 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 10bc3e5..605cecf 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,6 +1,8 @@ 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; import com.mangkyu.employment.interview.enums.value.QuizCategory; @@ -25,6 +27,8 @@ class QuizRepositoryTest { @Autowired private QuizRepository quizRepository; + @Autowired + private AnswerRepository answerRepository; @ParameterizedTest @MethodSource("validQuizParameters") @@ -321,14 +325,23 @@ class QuizRepositoryTest { } private void initForPaging(final QuizCategory quizCategory) { - quizRepository.save(EntityCreationUtils.quiz("quiz", quizCategory, Arrays.asList(QuizLevel.JUNIOR, QuizLevel.SENIOR))); - quizRepository.save(EntityCreationUtils.quiz("quiz", quizCategory, Arrays.asList(QuizLevel.JUNIOR, QuizLevel.SENIOR))); - quizRepository.save(EntityCreationUtils.quiz("quiz", quizCategory, Arrays.asList(QuizLevel.JUNIOR, QuizLevel.SENIOR))); - quizRepository.save(EntityCreationUtils.quiz("quiz", quizCategory, Arrays.asList(QuizLevel.JUNIOR, QuizLevel.SENIOR))); - quizRepository.save(EntityCreationUtils.quiz("quiz", quizCategory, Arrays.asList(QuizLevel.JUNIOR, QuizLevel.SENIOR))); - quizRepository.save(EntityCreationUtils.quiz("quiz", quizCategory, Arrays.asList(QuizLevel.JUNIOR, QuizLevel.SENIOR))); - quizRepository.save(EntityCreationUtils.quiz("quiz", QuizCategory.ALGORITHM, Collections.singletonList(QuizLevel.SENIOR))); - quizRepository.save(EntityCreationUtils.quiz("quiz", QuizCategory.DATABASE, Collections.singletonList(QuizLevel.SENIOR))); + final Quiz savedQuiz1 = quizRepository.save(EntityCreationUtils.quiz("quiz", quizCategory, Arrays.asList(QuizLevel.JUNIOR, QuizLevel.SENIOR))); + final Quiz savedQuiz2 = quizRepository.save(EntityCreationUtils.quiz("quiz", quizCategory, Arrays.asList(QuizLevel.JUNIOR, QuizLevel.SENIOR))); + final Quiz savedQuiz3 = quizRepository.save(EntityCreationUtils.quiz("quiz", quizCategory, Arrays.asList(QuizLevel.JUNIOR, QuizLevel.SENIOR))); + final Quiz savedQuiz4 = quizRepository.save(EntityCreationUtils.quiz("quiz", quizCategory, Arrays.asList(QuizLevel.JUNIOR, QuizLevel.SENIOR))); + final Quiz savedQuiz5 = quizRepository.save(EntityCreationUtils.quiz("quiz", quizCategory, Arrays.asList(QuizLevel.JUNIOR, QuizLevel.SENIOR))); + final Quiz savedQuiz6 = quizRepository.save(EntityCreationUtils.quiz("quiz", quizCategory, Arrays.asList(QuizLevel.JUNIOR, QuizLevel.SENIOR))); + final Quiz savedQuiz7 = quizRepository.save(EntityCreationUtils.quiz("quiz", QuizCategory.ALGORITHM, Collections.singletonList(QuizLevel.SENIOR))); + final Quiz savedQuiz8 = quizRepository.save(EntityCreationUtils.quiz("quiz", QuizCategory.DATABASE, Collections.singletonList(QuizLevel.SENIOR))); + + savedQuiz1.setAnswer(answerRepository.save(EntityCreationUtils.answer(savedQuiz1))); + savedQuiz2.setAnswer(answerRepository.save(EntityCreationUtils.answer(savedQuiz2))); + savedQuiz3.setAnswer(answerRepository.save(EntityCreationUtils.answer(savedQuiz3))); + savedQuiz4.setAnswer(answerRepository.save(EntityCreationUtils.answer(savedQuiz4))); + savedQuiz5.setAnswer(answerRepository.save(EntityCreationUtils.answer(savedQuiz5))); + savedQuiz6.setAnswer(answerRepository.save(EntityCreationUtils.answer(savedQuiz6))); + savedQuiz7.setAnswer(answerRepository.save(EntityCreationUtils.answer(savedQuiz7))); + savedQuiz8.setAnswer(answerRepository.save(EntityCreationUtils.answer(savedQuiz8))); } private static Stream validQuizParameters() {