Merge branch 'master' into master-web

This commit is contained in:
MangKyu
2022-02-01 03:40:50 +09:00
4 changed files with 30 additions and 31 deletions

View File

@@ -15,28 +15,28 @@ public interface QuizRepository extends JpaRepository<Quiz, Long>, QuizRepositor
Optional<Quiz> findByResourceId(final String resourceId);
Page<Quiz> findByQuizCategoryIs(final QuizCategory quizCategory, final Pageable pageable);
Page<Quiz> findByQuizCategoryIsAndIsEnableTrue(final QuizCategory quizCategory, final Pageable pageable);
Long countByQuizCategory(final QuizCategory category);
Long countByQuizCategoryAndIsEnableTrue(final QuizCategory category);
default List<Quiz> customFindByIdNotInAndQuizLevel(final Set<Long> quizIdSet, final QuizLevel quizLevel) {
default List<Quiz> customFindByIdNotInAndQuizLevelAndIsEnableTrue(final Set<Long> quizIdSet, final QuizLevel quizLevel) {
return quizIdSet.isEmpty()
? findByQuizLevel(quizLevel)
: findByIdNotInAndQuizLevel(quizIdSet, quizLevel);
? findByQuizLevelAndIsEnableTrue(quizLevel)
: findByIdNotInAndQuizLevelAndIsEnableTrue(quizIdSet, quizLevel);
}
List<Quiz> findByQuizLevel(final QuizLevel quizLevel);
List<Quiz> findByQuizLevelAndIsEnableTrue(final QuizLevel quizLevel);
List<Quiz> findByIdNotInAndQuizLevel(final Set<Long> quizIdSet, final QuizLevel quizLevel);
List<Quiz> findByIdNotInAndQuizLevelAndIsEnableTrue(final Set<Long> quizIdSet, final QuizLevel quizLevel);
default List<Quiz> customFindByIdNotInAndQuizCategoryInAndQuizLevel(final Set<Long> quizIdSet, final Set<QuizCategory> quizCategorySet, final QuizLevel quizLevel) {
default List<Quiz> customFindByIdNotInAndQuizCategoryInAndQuizLevelAndIsEnableTrue(final Set<Long> quizIdSet, final Set<QuizCategory> quizCategorySet, final QuizLevel quizLevel) {
return quizIdSet.isEmpty()
? findByQuizCategoryInAndQuizLevel(quizCategorySet, quizLevel)
: findByIdNotInAndQuizCategoryInAndQuizLevel(quizIdSet, quizCategorySet, quizLevel);
? findByQuizCategoryInAndQuizLevelAndIsEnableTrue(quizCategorySet, quizLevel)
: findByIdNotInAndQuizCategoryInAndQuizLevelAndIsEnableTrue(quizIdSet, quizCategorySet, quizLevel);
}
List<Quiz> findByQuizCategoryInAndQuizLevel(final Set<QuizCategory> quizCategorySet, final QuizLevel quizLevel);
List<Quiz> findByQuizCategoryInAndQuizLevelAndIsEnableTrue(final Set<QuizCategory> quizCategorySet, final QuizLevel quizLevel);
List<Quiz> findByIdNotInAndQuizCategoryInAndQuizLevel(final Set<Long> quizIdSet, final Set<QuizCategory> quizCategorySet, final QuizLevel quizLevel);
List<Quiz> findByIdNotInAndQuizCategoryInAndQuizLevelAndIsEnableTrue(final Set<Long> quizIdSet, final Set<QuizCategory> quizCategorySet, final QuizLevel quizLevel);
}

View File

@@ -53,7 +53,7 @@ public class QuizService {
public GetQuizResponseHolder getQuizList(final GetQuizRequest getQuizRequest) {
final PageRequest pageRequest = PageRequest.of(getQuizRequest.getPage(), getQuizRequest.getSize());
final Page<Quiz> quizPage = quizRepository.findByQuizCategoryIs(getQuizRequest.getCategory(), pageRequest);
final Page<Quiz> quizPage = quizRepository.findByQuizCategoryIsAndIsEnableTrue(getQuizRequest.getCategory(), pageRequest);
final List<GetQuizResponse> 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<Quiz> getRandomQuizListUnderLimit(final List<Quiz> 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())

View File

@@ -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<Quiz> pageQuiz = quizRepository.findByQuizCategoryIs(quizCategory, pageRequest);
final Page<Quiz> 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<Long> idSet = new HashSet<>(Arrays.asList(savedQuiz1.getId(), savedQuiz2.getId(), savedQuiz3.getId(), savedQuiz4.getId()));
// when
final List<Quiz> unsolvedQuizList1 = quizRepository.customFindByIdNotInAndQuizCategoryInAndQuizLevel(Collections.emptySet(), new HashSet<>(Arrays.asList(QuizCategory.JAVA, QuizCategory.ALGORITHM, QuizCategory.CULTURE)), QuizLevel.NEW);
final List<Quiz> unsolvedQuizList2 = quizRepository.customFindByIdNotInAndQuizCategoryInAndQuizLevel(Collections.emptySet(), new HashSet<>(Arrays.asList(QuizCategory.CULTURE, QuizCategory.NETWORK)), QuizLevel.NEW);
final List<Quiz> unsolvedQuizList3 = quizRepository.customFindByIdNotInAndQuizCategoryInAndQuizLevel(Collections.emptySet(), new HashSet<>(Arrays.asList(QuizCategory.JAVA, QuizCategory.ALGORITHM, QuizCategory.DATABASE)), QuizLevel.NEW);
final List<Quiz> unsolvedQuizList4 = quizRepository.customFindByIdNotInAndQuizCategoryInAndQuizLevel(idSet, new HashSet<>(Arrays.asList(QuizCategory.JAVA, QuizCategory.DATABASE)), QuizLevel.NEW);
final List<Quiz> unsolvedQuizList1 = quizRepository.customFindByIdNotInAndQuizCategoryInAndQuizLevelAndIsEnableTrue(Collections.emptySet(), new HashSet<>(Arrays.asList(QuizCategory.JAVA, QuizCategory.ALGORITHM, QuizCategory.CULTURE)), QuizLevel.NEW);
final List<Quiz> unsolvedQuizList2 = quizRepository.customFindByIdNotInAndQuizCategoryInAndQuizLevelAndIsEnableTrue(Collections.emptySet(), new HashSet<>(Arrays.asList(QuizCategory.CULTURE, QuizCategory.NETWORK)), QuizLevel.NEW);
final List<Quiz> unsolvedQuizList3 = quizRepository.customFindByIdNotInAndQuizCategoryInAndQuizLevelAndIsEnableTrue(Collections.emptySet(), new HashSet<>(Arrays.asList(QuizCategory.JAVA, QuizCategory.ALGORITHM, QuizCategory.DATABASE)), QuizLevel.NEW);
final List<Quiz> 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<Quiz> unsolvedQuizList1 = quizRepository.customFindByIdNotInAndQuizLevel(new HashSet<>(Arrays.asList(savedQuiz1.getId(), savedQuiz2.getId())), QuizLevel.NEW);
final List<Quiz> unsolvedQuizList2 = quizRepository.customFindByIdNotInAndQuizLevel(Collections.emptySet(), QuizLevel.NEW);
final List<Quiz> unsolvedQuizList1 = quizRepository.customFindByIdNotInAndQuizLevelAndIsEnableTrue(new HashSet<>(Arrays.asList(savedQuiz1.getId(), savedQuiz2.getId())), QuizLevel.NEW);
final List<Quiz> 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<Quiz> unsolvedQuizList = quizRepository.findByQuizLevel(QuizLevel.NEW);
final List<Quiz> unsolvedQuizList = quizRepository.findByQuizLevelAndIsEnableTrue(QuizLevel.NEW);
// then
assertThat(unsolvedQuizList.size()).isEqualTo(3);

View File

@@ -159,7 +159,7 @@ class QuizServiceTest {
final Pageable pageable = PageRequest.of(page, size);
final PageImpl<Quiz> 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<Quiz> 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<Quiz> 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<QuizCategoryResponse> result = quizService.getQuizCategoryList();