Refactor getQuizList

This commit is contained in:
MangKyu
2023-02-18 22:42:11 +09:00
parent d52978cfa4
commit f70732d72f
13 changed files with 129 additions and 139 deletions

View File

@@ -9,7 +9,7 @@ import lombok.Getter;
import java.util.List; import java.util.List;
@Getter @Getter
public class GetQuizResponseHolder extends ResponseMetaData { public class GetPagingQuizResponse extends ResponseMetaData {
private final List<GetQuizResponse> quizList; private final List<GetQuizResponse> quizList;
@@ -17,7 +17,14 @@ public class GetQuizResponseHolder extends ResponseMetaData {
private final EnumMapperValue category; private final EnumMapperValue category;
@Builder @Builder
public GetQuizResponseHolder(final List<GetQuizResponse> quizList, final EnumMapperValue category, final boolean hasNext, final int page, final int size, final int totalPages) { public GetPagingQuizResponse(
final List<GetQuizResponse> quizList,
final EnumMapperValue category,
final boolean hasNext,
final int page,
final int size,
final int totalPages) {
super(hasNext, page, size, totalPages); super(hasNext, page, size, totalPages);
this.category = category; this.category = category;
this.quizList = quizList; this.quizList = quizList;

View File

@@ -5,8 +5,8 @@ import com.mangkyu.employment.interview.app.quiz.entity.PagingQuizzes;
import com.mangkyu.employment.interview.app.quiz.entity.Quiz; import com.mangkyu.employment.interview.app.quiz.entity.Quiz;
import com.mangkyu.employment.interview.app.quiz.service.GetQuizService; import com.mangkyu.employment.interview.app.quiz.service.GetQuizService;
import com.mangkyu.employment.interview.enums.common.EnumMapperKey; import com.mangkyu.employment.interview.enums.common.EnumMapperKey;
import com.mangkyu.employment.interview.enums.common.EnumMapperValue;
import com.mangkyu.employment.interview.enums.factory.EnumMapperFactory; import com.mangkyu.employment.interview.enums.factory.EnumMapperFactory;
import com.mangkyu.employment.interview.enums.value.QuizCategory;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
@@ -34,16 +34,26 @@ class GetQuizController {
} }
@GetMapping("/quizzes") @GetMapping("/quizzes")
public ResponseEntity<GetQuizResponseHolder> getQuizList(@Valid final GetQuizRequest getQuizRequest) { public ResponseEntity<GetPagingQuizResponse> getQuizList(@Valid final GetQuizRequest getQuizRequest) {
PagingQuizzes quizzes = quizService.getQuizList(getQuizRequest); final PagingQuizzes quizzes = quizService.getQuizList(getQuizRequest);
final GetQuizResponseHolder response = toResponse(quizzes, getQuizRequest.getCategory()); return ResponseEntity.ok(
return ResponseEntity.ok(response); toPageQuizResponse(
quizzes,
enumMapperFactory.getElement(EnumMapperKey.QUIZ_CATEGORY, getQuizRequest.getCategory())
)
);
} }
private GetQuizResponseHolder toResponse(PagingQuizzes quizzes, QuizCategory category) { @GetMapping("/quizzes/search")
return GetQuizResponseHolder.builder() public ResponseEntity<GetPagingQuizResponse> searchQuizList(@Valid final SearchQuizListRequest request) {
final PagingQuizzes quizzes = quizService.searchQuizList(request);
return ResponseEntity.ok(toPageQuizResponse(quizzes, null));
}
private GetPagingQuizResponse toPageQuizResponse(final PagingQuizzes quizzes, final EnumMapperValue category) {
return GetPagingQuizResponse.builder()
.quizList(quizzes.getQuizzes().getQuizList().stream().map(QuizDtoConverter::convert).collect(Collectors.toList())) .quizList(quizzes.getQuizzes().getQuizList().stream().map(QuizDtoConverter::convert).collect(Collectors.toList()))
.category(enumMapperFactory.getElement(EnumMapperKey.QUIZ_CATEGORY, category)) .category(category)
.hasNext(quizzes.isHasNext()) .hasNext(quizzes.isHasNext())
.page(quizzes.getPageNumber()) .page(quizzes.getPageNumber())
.size(quizzes.getPageSize()) .size(quizzes.getPageSize())
@@ -51,10 +61,4 @@ class GetQuizController {
.build(); .build();
} }
@GetMapping("/quizzes/search")
public ResponseEntity<GetQuizResponseHolder> searchQuizList(@Valid final SearchQuizListRequest request) {
final GetQuizResponseHolder response = quizService.searchQuizList(request);
return ResponseEntity.ok(response);
}
} }

View File

@@ -16,7 +16,7 @@ import org.springframework.web.bind.annotation.PathVariable;
@Controller @Controller
@RequiredArgsConstructor @RequiredArgsConstructor
public class WebQuizController { class WebQuizController {
private final GetQuizService quizService; private final GetQuizService quizService;
private final EnumMapperFactory enumMapperFactory; private final EnumMapperFactory enumMapperFactory;

View File

@@ -1,4 +1,4 @@
package com.mangkyu.employment.interview.app.quiz.service; package com.mangkyu.employment.interview.app.quiz.entity;
import com.mangkyu.employment.interview.enums.value.QuizCategory; import com.mangkyu.employment.interview.enums.value.QuizCategory;
import com.mangkyu.employment.interview.enums.value.QuizLevel; import com.mangkyu.employment.interview.enums.value.QuizLevel;

View File

@@ -1,6 +1,6 @@
package com.mangkyu.employment.interview.app.quiz.repository; package com.mangkyu.employment.interview.app.quiz.repository;
import com.mangkyu.employment.interview.app.quiz.service.QuizSearchCondition; import com.mangkyu.employment.interview.app.quiz.entity.QuizSearchCondition;
import com.mangkyu.employment.interview.app.quiz.entity.Quiz; import com.mangkyu.employment.interview.app.quiz.entity.Quiz;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;

View File

@@ -1,6 +1,6 @@
package com.mangkyu.employment.interview.app.quiz.repository; package com.mangkyu.employment.interview.app.quiz.repository;
import com.mangkyu.employment.interview.app.quiz.service.QuizSearchCondition; import com.mangkyu.employment.interview.app.quiz.entity.QuizSearchCondition;
import com.mangkyu.employment.interview.app.quiz.entity.QQuiz; import com.mangkyu.employment.interview.app.quiz.entity.QQuiz;
import com.mangkyu.employment.interview.app.quiz.entity.Quiz; import com.mangkyu.employment.interview.app.quiz.entity.Quiz;
import com.mangkyu.employment.interview.enums.value.QuizCategory; import com.mangkyu.employment.interview.enums.value.QuizCategory;

View File

@@ -1,9 +1,10 @@
package com.mangkyu.employment.interview.app.quiz.service; package com.mangkyu.employment.interview.app.quiz.service;
import com.mangkyu.employment.interview.app.quiz.controller.*; import com.mangkyu.employment.interview.app.quiz.controller.GetQuizRequest;
import com.mangkyu.employment.interview.app.quiz.converter.QuizDtoConverter; import com.mangkyu.employment.interview.app.quiz.controller.SearchQuizListRequest;
import com.mangkyu.employment.interview.app.quiz.entity.PagingQuizzes; import com.mangkyu.employment.interview.app.quiz.entity.PagingQuizzes;
import com.mangkyu.employment.interview.app.quiz.entity.Quiz; import com.mangkyu.employment.interview.app.quiz.entity.Quiz;
import com.mangkyu.employment.interview.app.quiz.entity.QuizSearchCondition;
import com.mangkyu.employment.interview.app.quiz.entity.Quizzes; import com.mangkyu.employment.interview.app.quiz.entity.Quizzes;
import com.mangkyu.employment.interview.app.quiz.repository.QuizRepository; import com.mangkyu.employment.interview.app.quiz.repository.QuizRepository;
import com.mangkyu.employment.interview.app.solvedquiz.repository.SolvedQuizRepository; import com.mangkyu.employment.interview.app.solvedquiz.repository.SolvedQuizRepository;
@@ -18,7 +19,6 @@ import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -47,9 +47,9 @@ public class GetQuizService {
// TODO: do not use GetQuizResponseHolder in service layer // TODO: do not use GetQuizResponseHolder in service layer
public PagingQuizzes getQuizList(final GetQuizRequest getQuizRequest) { public PagingQuizzes getQuizList(final GetQuizRequest request) {
final PageRequest pageRequest = PageRequest.of(getQuizRequest.getPage(), getQuizRequest.getSize()); final PageRequest pageRequest = PageRequest.of(request.getPage(), request.getSize());
final Page<Quiz> quizPage = quizRepository.findByQuizCategoryIsAndIsEnableTrue(getQuizRequest.getCategory(), pageRequest); final Page<Quiz> quizPage = quizRepository.findByQuizCategoryIsAndIsEnableTrue(request.getCategory(), pageRequest);
return PagingQuizzes.builder() return PagingQuizzes.builder()
.quizzes(new Quizzes(quizPage.getContent())) .quizzes(new Quizzes(quizPage.getContent()))
@@ -60,21 +60,17 @@ public class GetQuizService {
.build(); .build();
} }
public GetQuizResponseHolder searchQuizList(final SearchQuizListRequest searchRequest) { public PagingQuizzes searchQuizList(final SearchQuizListRequest request) {
final QuizSearchCondition condition = modelMapper.map(searchRequest, QuizSearchCondition.class); final QuizSearchCondition condition = modelMapper.map(request, QuizSearchCondition.class);
final PageRequest pageRequest = PageRequest.of(searchRequest.getPage(), searchRequest.getSize()); final PageRequest pageRequest = PageRequest.of(request.getPage(), request.getSize());
final Page<Quiz> quizPage = quizRepository.search(condition, pageRequest); final Page<Quiz> quizPage = quizRepository.search(condition, pageRequest);
final List<GetQuizResponse> quizResponseList = quizPage.getContent().stream() return PagingQuizzes.builder()
.map(QuizDtoConverter::convert) .quizzes(new Quizzes(quizPage.getContent()))
.collect(Collectors.toList());
return GetQuizResponseHolder.builder()
.quizList(quizResponseList)
.hasNext(quizPage.hasNext()) .hasNext(quizPage.hasNext())
.page(quizPage.nextOrLastPageable().getPageNumber()) .pageNumber(quizPage.nextOrLastPageable().getPageNumber())
.size(quizPage.nextOrLastPageable().getPageSize()) .pageSize(quizPage.nextOrLastPageable().getPageSize())
.totalPages(quizPage.getTotalPages()) .totalPages(quizPage.getTotalPages())
.build(); .build();
} }

View File

@@ -11,7 +11,7 @@ import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.ResultActions; import org.springframework.test.web.servlet.ResultActions;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import java.util.Collections; import java.util.List;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
@@ -30,7 +30,7 @@ class AddQuizControllerTest {
final AddQuizRequest request = AddQuizRequest.builder() final AddQuizRequest request = AddQuizRequest.builder()
.quizCategory(QuizCategory.JAVA) .quizCategory(QuizCategory.JAVA)
.title("Title") .title("Title")
.quizLevel(Collections.singletonList(QuizLevel.NEW)) .quizLevel(List.of(QuizLevel.NEW))
.build(); .build();
// when // when

View File

@@ -5,11 +5,9 @@ import com.mangkyu.employment.interview.app.quiz.entity.Quiz;
import com.mangkyu.employment.interview.app.quiz.entity.Quizzes; import com.mangkyu.employment.interview.app.quiz.entity.Quizzes;
import com.mangkyu.employment.interview.app.quiz.service.GetQuizService; import com.mangkyu.employment.interview.app.quiz.service.GetQuizService;
import com.mangkyu.employment.interview.enums.common.EnumMapperKey; import com.mangkyu.employment.interview.enums.common.EnumMapperKey;
import com.mangkyu.employment.interview.enums.common.EnumMapperType;
import com.mangkyu.employment.interview.enums.common.EnumMapperValue; import com.mangkyu.employment.interview.enums.common.EnumMapperValue;
import com.mangkyu.employment.interview.enums.factory.EnumMapperFactory; import com.mangkyu.employment.interview.enums.factory.EnumMapperFactory;
import com.mangkyu.employment.interview.enums.value.QuizCategory; import com.mangkyu.employment.interview.enums.value.QuizCategory;
import com.mangkyu.employment.interview.enums.value.QuizLevel;
import com.mangkyu.employment.interview.testutils.EntityCreationUtils; import com.mangkyu.employment.interview.testutils.EntityCreationUtils;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.ParameterizedTest;
@@ -24,8 +22,6 @@ import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.ResultActions; import org.springframework.test.web.servlet.ResultActions;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import java.util.Arrays;
import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.stream.Stream; import java.util.stream.Stream;
@@ -73,7 +69,7 @@ class GetQuizControllerTest {
.expose(true) .expose(true)
.build(); .build();
doReturn(Collections.singletonList(enumMapperValue)) doReturn(List.of(enumMapperValue))
.when(enumMapperFactory) .when(enumMapperFactory)
.get(EnumMapperKey.QUIZ_CATEGORY); .get(EnumMapperKey.QUIZ_CATEGORY);
@@ -112,7 +108,7 @@ class GetQuizControllerTest {
final Quiz quiz = EntityCreationUtils.quiz(); final Quiz quiz = EntityCreationUtils.quiz();
final Pageable pageable = PageRequest.of(MIN_PAGE_NUMBER, MIN_PAGE_SIZE); final Pageable pageable = PageRequest.of(MIN_PAGE_NUMBER, MIN_PAGE_SIZE);
final PageImpl<Quiz> quizPage = new PageImpl<>(Collections.emptyList(), pageable, 0); final PageImpl<Quiz> quizPage = new PageImpl<>(List.of(), pageable, 0);
final PagingQuizzes quizzes = PagingQuizzes.builder() final PagingQuizzes quizzes = PagingQuizzes.builder()
.quizzes(new Quizzes(List.of(quiz))) .quizzes(new Quizzes(List.of(quiz)))
@@ -160,24 +156,20 @@ class GetQuizControllerTest {
@Test @Test
void searchQuizSuccess() throws Exception { void searchQuizSuccess() throws Exception {
// given // given
final GetQuizResponse quizResponse = GetQuizResponse.builder() final Quiz quiz = EntityCreationUtils.quiz();
.title("quiz")
.quizLevelList(Arrays.asList(QuizLevel.JUNIOR.name(), QuizLevel.SENIOR.name()))
.category(enumMapperValue(QuizCategory.JAVA).getTitle())
.build();
final Pageable pageable = PageRequest.of(MIN_PAGE_NUMBER, MIN_PAGE_SIZE); final Pageable pageable = PageRequest.of(MIN_PAGE_NUMBER, MIN_PAGE_SIZE);
final PageImpl<com.mangkyu.employment.interview.app.quiz.entity.Quiz> quizPage = new PageImpl<>(Collections.emptyList(), pageable, 0); final PageImpl<Quiz> quizPage = new PageImpl<>(List.of(), pageable, 0);
final GetQuizResponseHolder getQuizResponseHolder = GetQuizResponseHolder.builder() final PagingQuizzes quizzes = PagingQuizzes.builder()
.quizList(Collections.singletonList(quizResponse)) .quizzes(new Quizzes(List.of(quiz)))
.hasNext(quizPage.hasNext()) .hasNext(quizPage.hasNext())
.page(quizPage.nextOrLastPageable().getPageNumber()) .pageNumber(quizPage.nextOrLastPageable().getPageNumber())
.size(quizPage.nextOrLastPageable().getPageSize()) .pageSize(quizPage.nextOrLastPageable().getPageSize())
.totalPages(quizPage.getTotalPages()) .totalPages(quizPage.getTotalPages())
.build(); .build();
doReturn(getQuizResponseHolder) doReturn(quizzes)
.when(quizService) .when(quizService)
.searchQuizList(any(SearchQuizListRequest.class)); .searchQuizList(any(SearchQuizListRequest.class));
@@ -192,12 +184,4 @@ class GetQuizControllerTest {
result.andExpect(status().isOk()); result.andExpect(status().isOk());
} }
private EnumMapperValue enumMapperValue(final EnumMapperType enumMapperType) {
return EnumMapperValue.builder()
.code(enumMapperType.name())
.title(enumMapperType.getTitle())
.desc(enumMapperType.getDesc())
.build();
}
} }

View File

@@ -3,15 +3,15 @@ package com.mangkyu.employment.interview.app.quiz.entity;
import com.mangkyu.employment.interview.enums.value.QuizCategory; import com.mangkyu.employment.interview.enums.value.QuizCategory;
import com.mangkyu.employment.interview.enums.value.QuizLevel; import com.mangkyu.employment.interview.enums.value.QuizLevel;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.junit.jupiter.MockitoExtension;
import org.springframework.test.util.ReflectionTestUtils; import org.springframework.test.util.ReflectionTestUtils;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.*; import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.*;
class QuizzesTest { class QuizzesTest {
@@ -68,9 +68,9 @@ class QuizzesTest {
private Quiz quiz(final long id) { private Quiz quiz(final long id) {
final Quiz quiz = Quiz.builder() final Quiz quiz = Quiz.builder()
.title("quiz") .title("quiz")
.quizLevel(Arrays.asList(QuizLevel.JUNIOR, QuizLevel.SENIOR)) .quizLevel(List.of(QuizLevel.JUNIOR, QuizLevel.SENIOR))
.quizCategory(QuizCategory.JAVA) .quizCategory(QuizCategory.JAVA)
.quizLevel(Arrays.asList(QuizLevel.NEW, QuizLevel.JUNIOR, QuizLevel.SENIOR)) .quizLevel(List.of(QuizLevel.NEW, QuizLevel.JUNIOR, QuizLevel.SENIOR))
.build(); .build();
ReflectionTestUtils.setField(quiz, "id", id); ReflectionTestUtils.setField(quiz, "id", id);

View File

@@ -2,8 +2,8 @@ package com.mangkyu.employment.interview.app.quiz.repository;
import com.mangkyu.employment.interview.JpaTestConfig; import com.mangkyu.employment.interview.JpaTestConfig;
import com.mangkyu.employment.interview.app.answer.repository.AnswerRepository; import com.mangkyu.employment.interview.app.answer.repository.AnswerRepository;
import com.mangkyu.employment.interview.app.quiz.service.QuizSearchCondition;
import com.mangkyu.employment.interview.app.quiz.entity.Quiz; import com.mangkyu.employment.interview.app.quiz.entity.Quiz;
import com.mangkyu.employment.interview.app.quiz.entity.QuizSearchCondition;
import com.mangkyu.employment.interview.enums.value.QuizCategory; import com.mangkyu.employment.interview.enums.value.QuizCategory;
import com.mangkyu.employment.interview.enums.value.QuizLevel; import com.mangkyu.employment.interview.enums.value.QuizLevel;
import com.mangkyu.employment.interview.testutils.EntityCreationUtils; import com.mangkyu.employment.interview.testutils.EntityCreationUtils;
@@ -99,8 +99,8 @@ class QuizRepositoryTest {
final QuizSearchCondition searchCondition = QuizSearchCondition.builder() final QuizSearchCondition searchCondition = QuizSearchCondition.builder()
.query(null) .query(null)
.categories(Collections.emptySet()) .categories(Set.of())
.levels(new HashSet<>(Arrays.asList(QuizLevel.NEW, QuizLevel.JUNIOR))) .levels(new HashSet<>(List.of(QuizLevel.NEW, QuizLevel.JUNIOR)))
.build(); .build();
boolean hasNext = true; boolean hasNext = true;
@@ -129,8 +129,8 @@ class QuizRepositoryTest {
final QuizSearchCondition searchCondition = QuizSearchCondition.builder() final QuizSearchCondition searchCondition = QuizSearchCondition.builder()
.query(null) .query(null)
.categories(new HashSet<>(Arrays.asList(QuizCategory.ALGORITHM, QuizCategory.DATABASE))) .categories(new HashSet<>(List.of(QuizCategory.ALGORITHM, QuizCategory.DATABASE)))
.levels(Collections.emptySet()) .levels(Set.of())
.build(); .build();
boolean hasNext = true; boolean hasNext = true;
@@ -159,8 +159,8 @@ class QuizRepositoryTest {
final QuizSearchCondition searchCondition = QuizSearchCondition.builder() final QuizSearchCondition searchCondition = QuizSearchCondition.builder()
.query(null) .query(null)
.categories(Collections.emptySet()) .categories(Set.of())
.levels(Collections.emptySet()) .levels(Set.of())
.build(); .build();
boolean hasNext = true; boolean hasNext = true;
@@ -221,10 +221,10 @@ class QuizRepositoryTest {
@Test @Test
public void selectQuizCountByCategory() { public void selectQuizCountByCategory() {
// given // given
final Quiz quiz1 = EntityCreationUtils.quiz("quiz1", QuizCategory.JAVA, Arrays.asList(QuizLevel.NEW, QuizLevel.JUNIOR, QuizLevel.SENIOR)); final Quiz quiz1 = EntityCreationUtils.quiz("quiz1", QuizCategory.JAVA, List.of(QuizLevel.NEW, QuizLevel.JUNIOR, QuizLevel.SENIOR));
final Quiz quiz2 = EntityCreationUtils.quiz("quiz2", QuizCategory.JAVA, Arrays.asList(QuizLevel.NEW, QuizLevel.JUNIOR, QuizLevel.SENIOR)); final Quiz quiz2 = EntityCreationUtils.quiz("quiz2", QuizCategory.JAVA, List.of(QuizLevel.NEW, QuizLevel.JUNIOR, QuizLevel.SENIOR));
final Quiz quiz3 = EntityCreationUtils.quiz("quiz3", QuizCategory.JAVA, Arrays.asList(QuizLevel.NEW, QuizLevel.JUNIOR, QuizLevel.SENIOR)); final Quiz quiz3 = EntityCreationUtils.quiz("quiz3", QuizCategory.JAVA, List.of(QuizLevel.NEW, QuizLevel.JUNIOR, QuizLevel.SENIOR));
final Quiz quiz4 = EntityCreationUtils.quiz("quiz4", QuizCategory.DATABASE, Arrays.asList(QuizLevel.JUNIOR, QuizLevel.SENIOR)); final Quiz quiz4 = EntityCreationUtils.quiz("quiz4", QuizCategory.DATABASE, List.of(QuizLevel.JUNIOR, QuizLevel.SENIOR));
quizRepository.save(quiz1); quizRepository.save(quiz1);
quizRepository.save(quiz2); quizRepository.save(quiz2);
@@ -256,23 +256,23 @@ class QuizRepositoryTest {
@Test @Test
public void selectQuizNotInAndLevelAndQuizCategory() { public void selectQuizNotInAndLevelAndQuizCategory() {
// given // given
final Quiz quiz1 = EntityCreationUtils.quiz("quiz1", QuizCategory.JAVA, Arrays.asList(QuizLevel.NEW, QuizLevel.JUNIOR, QuizLevel.SENIOR)); final Quiz quiz1 = EntityCreationUtils.quiz("quiz1", QuizCategory.JAVA, List.of(QuizLevel.NEW, QuizLevel.JUNIOR, QuizLevel.SENIOR));
final Quiz quiz2 = EntityCreationUtils.quiz("quiz2", QuizCategory.JAVA, Arrays.asList(QuizLevel.NEW, QuizLevel.JUNIOR, QuizLevel.SENIOR)); final Quiz quiz2 = EntityCreationUtils.quiz("quiz2", QuizCategory.JAVA, List.of(QuizLevel.NEW, QuizLevel.JUNIOR, QuizLevel.SENIOR));
final Quiz quiz3 = EntityCreationUtils.quiz("quiz3", QuizCategory.DATABASE, Arrays.asList(QuizLevel.NEW, QuizLevel.JUNIOR, QuizLevel.SENIOR)); final Quiz quiz3 = EntityCreationUtils.quiz("quiz3", QuizCategory.DATABASE, List.of(QuizLevel.NEW, QuizLevel.JUNIOR, QuizLevel.SENIOR));
final Quiz quiz4 = EntityCreationUtils.quiz("quiz4", QuizCategory.JAVA, Arrays.asList(QuizLevel.JUNIOR, QuizLevel.SENIOR)); final Quiz quiz4 = EntityCreationUtils.quiz("quiz4", QuizCategory.JAVA, List.of(QuizLevel.JUNIOR, QuizLevel.SENIOR));
final Quiz savedQuiz1 = quizRepository.save(quiz1); final Quiz savedQuiz1 = quizRepository.save(quiz1);
final Quiz savedQuiz2 = quizRepository.save(quiz2); final Quiz savedQuiz2 = quizRepository.save(quiz2);
final Quiz savedQuiz3 = quizRepository.save(quiz3); final Quiz savedQuiz3 = quizRepository.save(quiz3);
final Quiz savedQuiz4 = quizRepository.save(quiz4); final Quiz savedQuiz4 = quizRepository.save(quiz4);
final Set<Long> idSet = new HashSet<>(Arrays.asList(savedQuiz1.getId(), savedQuiz2.getId(), savedQuiz3.getId(), savedQuiz4.getId())); final Set<Long> idSet = new HashSet<>(List.of(savedQuiz1.getId(), savedQuiz2.getId(), savedQuiz3.getId(), savedQuiz4.getId()));
// when // when
final List<Quiz> unsolvedQuizList1 = quizRepository.customFindByIdNotInAndQuizCategoryInAndQuizLevel(Collections.emptySet(), new HashSet<>(Arrays.asList(QuizCategory.JAVA, QuizCategory.ALGORITHM, QuizCategory.CULTURE)), QuizLevel.NEW); final List<Quiz> unsolvedQuizList1 = quizRepository.customFindByIdNotInAndQuizCategoryInAndQuizLevel(Set.of(), new HashSet<>(List.of(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> unsolvedQuizList2 = quizRepository.customFindByIdNotInAndQuizCategoryInAndQuizLevel(Set.of(), new HashSet<>(List.of(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> unsolvedQuizList3 = quizRepository.customFindByIdNotInAndQuizCategoryInAndQuizLevel(Set.of(), new HashSet<>(List.of(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> unsolvedQuizList4 = quizRepository.customFindByIdNotInAndQuizCategoryInAndQuizLevel(idSet, new HashSet<>(List.of(QuizCategory.JAVA, QuizCategory.DATABASE)), QuizLevel.NEW);
// then // then
assertThat(unsolvedQuizList1.size()).isEqualTo(2); assertThat(unsolvedQuizList1.size()).isEqualTo(2);
@@ -284,10 +284,10 @@ class QuizRepositoryTest {
@Test @Test
public void selectQuizNotInAndLevel() { public void selectQuizNotInAndLevel() {
// given // given
final Quiz quiz1 = EntityCreationUtils.quiz("quiz1", QuizCategory.JAVA, Arrays.asList(QuizLevel.NEW, QuizLevel.JUNIOR, QuizLevel.SENIOR)); final Quiz quiz1 = EntityCreationUtils.quiz("quiz1", QuizCategory.JAVA, List.of(QuizLevel.NEW, QuizLevel.JUNIOR, QuizLevel.SENIOR));
final Quiz quiz2 = EntityCreationUtils.quiz("quiz2", QuizCategory.JAVA, Arrays.asList(QuizLevel.NEW, QuizLevel.JUNIOR, QuizLevel.SENIOR)); final Quiz quiz2 = EntityCreationUtils.quiz("quiz2", QuizCategory.JAVA, List.of(QuizLevel.NEW, QuizLevel.JUNIOR, QuizLevel.SENIOR));
final Quiz quiz3 = EntityCreationUtils.quiz("quiz3", QuizCategory.JAVA, Arrays.asList(QuizLevel.NEW, QuizLevel.JUNIOR, QuizLevel.SENIOR)); final Quiz quiz3 = EntityCreationUtils.quiz("quiz3", QuizCategory.JAVA, List.of(QuizLevel.NEW, QuizLevel.JUNIOR, QuizLevel.SENIOR));
final Quiz quiz4 = EntityCreationUtils.quiz("quiz4", QuizCategory.JAVA, Arrays.asList(QuizLevel.JUNIOR, QuizLevel.SENIOR)); final Quiz quiz4 = EntityCreationUtils.quiz("quiz4", QuizCategory.JAVA, List.of(QuizLevel.JUNIOR, QuizLevel.SENIOR));
final Quiz savedQuiz1 = quizRepository.save(quiz1); final Quiz savedQuiz1 = quizRepository.save(quiz1);
final Quiz savedQuiz2 = quizRepository.save(quiz2); final Quiz savedQuiz2 = quizRepository.save(quiz2);
@@ -295,8 +295,8 @@ class QuizRepositoryTest {
final Quiz savedQuiz4 = quizRepository.save(quiz4); final Quiz savedQuiz4 = quizRepository.save(quiz4);
// when // when
final List<Quiz> unsolvedQuizList1 = quizRepository.customFindByIdNotInAndQuizLevelAndIsEnableTrue(new HashSet<>(Arrays.asList(savedQuiz1.getId(), savedQuiz2.getId())), QuizLevel.NEW); final List<Quiz> unsolvedQuizList1 = quizRepository.customFindByIdNotInAndQuizLevelAndIsEnableTrue(new HashSet<>(List.of(savedQuiz1.getId(), savedQuiz2.getId())), QuizLevel.NEW);
final List<Quiz> unsolvedQuizList2 = quizRepository.customFindByIdNotInAndQuizLevelAndIsEnableTrue(Collections.emptySet(), QuizLevel.NEW); final List<Quiz> unsolvedQuizList2 = quizRepository.customFindByIdNotInAndQuizLevelAndIsEnableTrue(Set.of(), QuizLevel.NEW);
// then // then
assertThat(unsolvedQuizList1.size()).isEqualTo(1); assertThat(unsolvedQuizList1.size()).isEqualTo(1);
@@ -306,10 +306,10 @@ class QuizRepositoryTest {
@Test @Test
public void selectQuizLevel() { public void selectQuizLevel() {
// given // given
final Quiz quiz1 = EntityCreationUtils.quiz("quiz1", QuizCategory.JAVA, Arrays.asList(QuizLevel.NEW, QuizLevel.JUNIOR, QuizLevel.SENIOR)); final Quiz quiz1 = EntityCreationUtils.quiz("quiz1", QuizCategory.JAVA, List.of(QuizLevel.NEW, QuizLevel.JUNIOR, QuizLevel.SENIOR));
final Quiz quiz2 = EntityCreationUtils.quiz("quiz2", QuizCategory.JAVA, Arrays.asList(QuizLevel.NEW, QuizLevel.JUNIOR, QuizLevel.SENIOR)); final Quiz quiz2 = EntityCreationUtils.quiz("quiz2", QuizCategory.JAVA, List.of(QuizLevel.NEW, QuizLevel.JUNIOR, QuizLevel.SENIOR));
final Quiz quiz3 = EntityCreationUtils.quiz("quiz3", QuizCategory.JAVA, Arrays.asList(QuizLevel.NEW, QuizLevel.JUNIOR, QuizLevel.SENIOR)); final Quiz quiz3 = EntityCreationUtils.quiz("quiz3", QuizCategory.JAVA, List.of(QuizLevel.NEW, QuizLevel.JUNIOR, QuizLevel.SENIOR));
final Quiz quiz4 = EntityCreationUtils.quiz("quiz4", QuizCategory.JAVA, Arrays.asList(QuizLevel.JUNIOR, QuizLevel.SENIOR)); final Quiz quiz4 = EntityCreationUtils.quiz("quiz4", QuizCategory.JAVA, List.of(QuizLevel.JUNIOR, QuizLevel.SENIOR));
quizRepository.save(quiz1); quizRepository.save(quiz1);
quizRepository.save(quiz2); quizRepository.save(quiz2);
@@ -324,14 +324,14 @@ class QuizRepositoryTest {
} }
private void initForPaging(final QuizCategory quizCategory) { private void initForPaging(final QuizCategory quizCategory) {
final Quiz savedQuiz1 = quizRepository.save(EntityCreationUtils.quiz("quiz", quizCategory, Arrays.asList(QuizLevel.JUNIOR, QuizLevel.SENIOR))); final Quiz savedQuiz1 = quizRepository.save(EntityCreationUtils.quiz("quiz", quizCategory, List.of(QuizLevel.JUNIOR, QuizLevel.SENIOR)));
final Quiz savedQuiz2 = quizRepository.save(EntityCreationUtils.quiz("quiz", quizCategory, Arrays.asList(QuizLevel.JUNIOR, QuizLevel.SENIOR))); final Quiz savedQuiz2 = quizRepository.save(EntityCreationUtils.quiz("quiz", quizCategory, List.of(QuizLevel.JUNIOR, QuizLevel.SENIOR)));
final Quiz savedQuiz3 = quizRepository.save(EntityCreationUtils.quiz("quiz", quizCategory, Arrays.asList(QuizLevel.JUNIOR, QuizLevel.SENIOR))); final Quiz savedQuiz3 = quizRepository.save(EntityCreationUtils.quiz("quiz", quizCategory, List.of(QuizLevel.JUNIOR, QuizLevel.SENIOR)));
final Quiz savedQuiz4 = quizRepository.save(EntityCreationUtils.quiz("quiz", quizCategory, Arrays.asList(QuizLevel.JUNIOR, QuizLevel.SENIOR))); final Quiz savedQuiz4 = quizRepository.save(EntityCreationUtils.quiz("quiz", quizCategory, List.of(QuizLevel.JUNIOR, QuizLevel.SENIOR)));
final Quiz savedQuiz5 = quizRepository.save(EntityCreationUtils.quiz("quiz", quizCategory, Arrays.asList(QuizLevel.JUNIOR, QuizLevel.SENIOR))); final Quiz savedQuiz5 = quizRepository.save(EntityCreationUtils.quiz("quiz", quizCategory, List.of(QuizLevel.JUNIOR, QuizLevel.SENIOR)));
final Quiz savedQuiz6 = quizRepository.save(EntityCreationUtils.quiz("quiz", quizCategory, Arrays.asList(QuizLevel.JUNIOR, QuizLevel.SENIOR))); final Quiz savedQuiz6 = quizRepository.save(EntityCreationUtils.quiz("quiz", quizCategory, List.of(QuizLevel.JUNIOR, QuizLevel.SENIOR)));
final Quiz savedQuiz7 = quizRepository.save(EntityCreationUtils.quiz("quiz", QuizCategory.ALGORITHM, Collections.singletonList(QuizLevel.SENIOR))); final Quiz savedQuiz7 = quizRepository.save(EntityCreationUtils.quiz("quiz", QuizCategory.ALGORITHM, List.of(QuizLevel.SENIOR)));
final Quiz savedQuiz8 = quizRepository.save(EntityCreationUtils.quiz("quiz", QuizCategory.DATABASE, Collections.singletonList(QuizLevel.SENIOR))); final Quiz savedQuiz8 = quizRepository.save(EntityCreationUtils.quiz("quiz", QuizCategory.DATABASE, List.of(QuizLevel.SENIOR)));
savedQuiz1.setAnswer(answerRepository.save(EntityCreationUtils.answer(savedQuiz1))); savedQuiz1.setAnswer(answerRepository.save(EntityCreationUtils.answer(savedQuiz1)));
savedQuiz2.setAnswer(answerRepository.save(EntityCreationUtils.answer(savedQuiz2))); savedQuiz2.setAnswer(answerRepository.save(EntityCreationUtils.answer(savedQuiz2)));

View File

@@ -15,6 +15,7 @@ import org.mockito.junit.jupiter.MockitoExtension;
import org.modelmapper.ModelMapper; import org.modelmapper.ModelMapper;
import java.util.Arrays; import java.util.Arrays;
import java.util.List;
import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.times; import static org.mockito.Mockito.times;
@@ -37,7 +38,7 @@ class AddQuizServiceTest {
final AddQuizRequest request = AddQuizRequest.builder() final AddQuizRequest request = AddQuizRequest.builder()
.title("quiz") .title("quiz")
.quizCategory(QuizCategory.JAVA) .quizCategory(QuizCategory.JAVA)
.quizLevel(Arrays.asList(QuizLevel.NEW, QuizLevel.JUNIOR, QuizLevel.SENIOR)) .quizLevel(List.of(QuizLevel.NEW, QuizLevel.JUNIOR, QuizLevel.SENIOR))
.build(); .build();
// when // when

View File

@@ -1,15 +1,15 @@
package com.mangkyu.employment.interview.app.quiz.service; package com.mangkyu.employment.interview.app.quiz.service;
import com.mangkyu.employment.interview.app.quiz.controller.*; import com.mangkyu.employment.interview.app.quiz.controller.GetQuizRequest;
import com.mangkyu.employment.interview.app.quiz.controller.SearchQuizListRequest;
import com.mangkyu.employment.interview.app.quiz.entity.PagingQuizzes; import com.mangkyu.employment.interview.app.quiz.entity.PagingQuizzes;
import com.mangkyu.employment.interview.app.quiz.entity.Quiz;
import com.mangkyu.employment.interview.app.quiz.entity.QuizSearchCondition;
import com.mangkyu.employment.interview.app.quiz.entity.Quizzes; import com.mangkyu.employment.interview.app.quiz.entity.Quizzes;
import com.mangkyu.employment.interview.app.quiz.repository.QuizRepository; import com.mangkyu.employment.interview.app.quiz.repository.QuizRepository;
import com.mangkyu.employment.interview.app.solvedquiz.entity.SolvedQuiz; import com.mangkyu.employment.interview.app.solvedquiz.entity.SolvedQuiz;
import com.mangkyu.employment.interview.app.solvedquiz.repository.SolvedQuizRepository; import com.mangkyu.employment.interview.app.solvedquiz.repository.SolvedQuizRepository;
import com.mangkyu.employment.interview.config.modelmapper.ModelMapperConfig; import com.mangkyu.employment.interview.config.modelmapper.ModelMapperConfig;
import com.mangkyu.employment.interview.enums.common.EnumMapperKey;
import com.mangkyu.employment.interview.enums.common.EnumMapperValue;
import com.mangkyu.employment.interview.enums.factory.EnumMapperFactory;
import com.mangkyu.employment.interview.enums.value.QuizCategory; import com.mangkyu.employment.interview.enums.value.QuizCategory;
import com.mangkyu.employment.interview.enums.value.QuizLevel; import com.mangkyu.employment.interview.enums.value.QuizLevel;
import com.mangkyu.employment.interview.erros.errorcode.CommonErrorCode; import com.mangkyu.employment.interview.erros.errorcode.CommonErrorCode;
@@ -33,7 +33,7 @@ import java.util.stream.Collectors;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.*; import static org.mockito.Mockito.doReturn;
@ExtendWith(MockitoExtension.class) @ExtendWith(MockitoExtension.class)
class GetQuizServiceTest { class GetQuizServiceTest {
@@ -45,8 +45,6 @@ class GetQuizServiceTest {
private QuizRepository quizRepository; private QuizRepository quizRepository;
@Mock @Mock
private SolvedQuizRepository solvedQuizRepository; private SolvedQuizRepository solvedQuizRepository;
@Mock
private EnumMapperFactory enumMapperFactory;
@Spy @Spy
private ModelMapper modelMapper = new ModelMapperConfig().modelMapper(); private ModelMapper modelMapper = new ModelMapperConfig().modelMapper();
@@ -59,31 +57,31 @@ class GetQuizServiceTest {
final int page = 0; final int page = 0;
final int size = 20; final int size = 20;
final List<com.mangkyu.employment.interview.app.quiz.entity.Quiz> quizList = quizList(); final List<Quiz> quizList = quizList();
final SearchQuizListRequest request = SearchQuizListRequest.builder() final SearchQuizListRequest request = SearchQuizListRequest.builder()
.query("query") .query("query")
.categories(new HashSet<>(Arrays.asList(QuizCategory.CULTURE, QuizCategory.JAVA))) .categories(new HashSet<>(List.of(QuizCategory.CULTURE, QuizCategory.JAVA)))
.levels(new HashSet<>(Arrays.asList(QuizLevel.NEW, QuizLevel.SENIOR))) .levels(new HashSet<>(List.of(QuizLevel.NEW, QuizLevel.SENIOR)))
.page(0) .page(0)
.size(20) .size(20)
.build(); .build();
final PageImpl<com.mangkyu.employment.interview.app.quiz.entity.Quiz> quizPage = new PageImpl<>(quizList(), PageRequest.of(page, size), quizList.size()); final PageImpl<Quiz> quizPage = new PageImpl<>(quizList(), PageRequest.of(page, size), quizList.size());
doReturn(quizPage) doReturn(quizPage)
.when(quizRepository) .when(quizRepository)
.search(any(QuizSearchCondition.class), any(PageRequest.class)); .search(any(QuizSearchCondition.class), any(PageRequest.class));
// when // when
final GetQuizResponseHolder result = quizService.searchQuizList(request); final PagingQuizzes result = quizService.searchQuizList(request);
// then // then
assertThat(result.getQuizList().size()).isEqualTo(quizList.size()); assertThat(result.getQuizzes().getQuizList().size()).isEqualTo(quizList.size());
} }
@Test @Test
public void findQuizEntityFail_NotExists() { public void findQuizEntityFail_NotExists() {
// given // given
final com.mangkyu.employment.interview.app.quiz.entity.Quiz quiz = quiz(-1L); final Quiz quiz = quiz(-1L);
doReturn(Optional.empty()) doReturn(Optional.empty())
.when(quizRepository) .when(quizRepository)
@@ -101,14 +99,14 @@ class GetQuizServiceTest {
@Test @Test
public void findQuizEntitySuccess() { public void findQuizEntitySuccess() {
// given // given
final com.mangkyu.employment.interview.app.quiz.entity.Quiz quiz = quiz(-1L); final Quiz quiz = quiz(-1L);
doReturn(Optional.of(quiz)) doReturn(Optional.of(quiz))
.when(quizRepository) .when(quizRepository)
.findByResourceId(quiz.getResourceId()); .findByResourceId(quiz.getResourceId());
// when // when
final com.mangkyu.employment.interview.app.quiz.entity.Quiz result = quizService.getQuiz(quiz.getResourceId()); final Quiz result = quizService.getQuiz(quiz.getResourceId());
// then // then
assertThat(result.getResourceId()).isEqualTo(quiz.getResourceId()); assertThat(result.getResourceId()).isEqualTo(quiz.getResourceId());
@@ -127,10 +125,10 @@ class GetQuizServiceTest {
.page(page) .page(page)
.size(size) .size(size)
.build(); .build();
final List<com.mangkyu.employment.interview.app.quiz.entity.Quiz> quizList = quizList(); final List<Quiz> quizList = quizList();
final Pageable pageable = PageRequest.of(page, size); final Pageable pageable = PageRequest.of(page, size);
final PageImpl<com.mangkyu.employment.interview.app.quiz.entity.Quiz> quizPage = new PageImpl<>(quizList(), pageable, quizList.size()); final PageImpl<Quiz> quizPage = new PageImpl<>(quizList(), pageable, quizList.size());
doReturn(quizPage) doReturn(quizPage)
.when(quizRepository) .when(quizRepository)
.findByQuizCategoryIsAndIsEnableTrue(any(QuizCategory.class), any(PageRequest.class)); .findByQuizCategoryIsAndIsEnableTrue(any(QuizCategory.class), any(PageRequest.class));
@@ -151,7 +149,7 @@ class GetQuizServiceTest {
final Set<Long> solvedQuizIdList = solvedQuizList.stream() final Set<Long> solvedQuizIdList = solvedQuizList.stream()
.map(v -> v.getQuiz().getId()) .map(v -> v.getQuiz().getId())
.collect(Collectors.toSet()); .collect(Collectors.toSet());
final List<com.mangkyu.employment.interview.app.quiz.entity.Quiz> unsolvedQuizList = Collections.singletonList(quiz(4L)); final List<Quiz> unsolvedQuizList = List.of(quiz(4L));
final Set<QuizCategory> quizCategorySet = new HashSet<>(); final Set<QuizCategory> quizCategorySet = new HashSet<>();
quizCategorySet.add(QuizCategory.CULTURE); quizCategorySet.add(QuizCategory.CULTURE);
@@ -176,8 +174,8 @@ class GetQuizServiceTest {
@Test @Test
public void getUnsolvedQuizSuccess_SolvedQuizNotEmpty() { public void getUnsolvedQuizSuccess_SolvedQuizNotEmpty() {
// given // given
final List<SolvedQuiz> solvedQuizList = Collections.emptyList(); final List<SolvedQuiz> solvedQuizList = List.of();
final List<com.mangkyu.employment.interview.app.quiz.entity.Quiz> unsolvedQuizList = Collections.singletonList(quiz(4L)); final List<Quiz> unsolvedQuizList = List.of(quiz(4L));
final Set<QuizCategory> quizCategorySet = new HashSet<>(); final Set<QuizCategory> quizCategorySet = new HashSet<>();
quizCategorySet.add(QuizCategory.CULTURE); quizCategorySet.add(QuizCategory.CULTURE);
@@ -190,7 +188,7 @@ class GetQuizServiceTest {
doReturn(unsolvedQuizList) doReturn(unsolvedQuizList)
.when(quizRepository) .when(quizRepository)
.customFindByIdNotInAndQuizCategoryInAndQuizLevel(Collections.emptySet(), quizCategorySet, quizLevel); .customFindByIdNotInAndQuizCategoryInAndQuizLevel(Set.of(), quizCategorySet, quizLevel);
// when // when
final Quizzes result = quizService.getUnsolvedQuizList(userId, quizLevel, quizCategorySet); final Quizzes result = quizService.getUnsolvedQuizList(userId, quizLevel, quizCategorySet);
@@ -200,8 +198,8 @@ class GetQuizServiceTest {
} }
private List<com.mangkyu.employment.interview.app.quiz.entity.Quiz> quizList() { private List<Quiz> quizList() {
final List<com.mangkyu.employment.interview.app.quiz.entity.Quiz> unsolvedQuizList = new ArrayList<>(); final List<Quiz> unsolvedQuizList = new ArrayList<>();
unsolvedQuizList.add(quiz(1L)); unsolvedQuizList.add(quiz(1L));
unsolvedQuizList.add(quiz(2L)); unsolvedQuizList.add(quiz(2L));
@@ -212,7 +210,7 @@ class GetQuizServiceTest {
} }
private List<SolvedQuiz> solvedQuizList() { private List<SolvedQuiz> solvedQuizList() {
return Arrays.asList( return List.of(
solvedQuiz(1L), solvedQuiz(1L),
solvedQuiz(2L), solvedQuiz(2L),
solvedQuiz(3L) solvedQuiz(3L)
@@ -220,19 +218,19 @@ class GetQuizServiceTest {
} }
private SolvedQuiz solvedQuiz(final long id) { private SolvedQuiz solvedQuiz(final long id) {
final com.mangkyu.employment.interview.app.quiz.entity.Quiz quiz = quiz(id); final Quiz quiz = quiz(id);
return SolvedQuiz.builder() return SolvedQuiz.builder()
.quiz(quiz) .quiz(quiz)
.build(); .build();
} }
private com.mangkyu.employment.interview.app.quiz.entity.Quiz quiz(final long id) { private Quiz quiz(final long id) {
final com.mangkyu.employment.interview.app.quiz.entity.Quiz quiz = com.mangkyu.employment.interview.app.quiz.entity.Quiz.builder() final Quiz quiz = Quiz.builder()
.title("quiz") .title("quiz")
.quizLevel(Arrays.asList(QuizLevel.JUNIOR, QuizLevel.SENIOR)) .quizLevel(List.of(QuizLevel.JUNIOR, QuizLevel.SENIOR))
.quizCategory(QuizCategory.JAVA) .quizCategory(QuizCategory.JAVA)
.quizLevel(Arrays.asList(QuizLevel.NEW, QuizLevel.JUNIOR, QuizLevel.SENIOR)) .quizLevel(List.of(QuizLevel.NEW, QuizLevel.JUNIOR, QuizLevel.SENIOR))
.build(); .build();
ReflectionTestUtils.setField(quiz, "id", id); ReflectionTestUtils.setField(quiz, "id", id);