Merge branch 'master' into master-web

This commit is contained in:
MangKyu
2021-12-31 01:31:14 +09:00
6 changed files with 60 additions and 12 deletions

View File

@@ -2,6 +2,7 @@ package com.mangkyu.employment.interview.app.quiz.converter;
import com.mangkyu.employment.interview.app.quiz.dto.GetQuizResponse;
import com.mangkyu.employment.interview.app.quiz.entity.Quiz;
import com.mangkyu.employment.interview.enums.common.EnumMapperValue;
import com.mangkyu.employment.interview.enums.value.QuizLevel;
import lombok.NoArgsConstructor;
@@ -16,7 +17,15 @@ public final class QuizDtoConverter {
return GetQuizResponse.builder()
.id(quiz.getId())
.title(quiz.getTitle())
.quizCategory(quiz.getQuizCategory())
.quizLevelList(convert(quiz.getQuizLevel()))
.createdAt(Timestamp.valueOf(quiz.getCreatedAt()).getTime())
.build();
}
public static GetQuizResponse convert(final Quiz quiz, final EnumMapperValue enumMapperValue) {
return GetQuizResponse.builder()
.id(quiz.getId())
.title(quiz.getTitle())
.category(enumMapperValue)
.quizLevelList(convert(quiz.getQuizLevel()))
.createdAt(Timestamp.valueOf(quiz.getCreatedAt()).getTime())
.build();

View File

@@ -1,6 +1,7 @@
package com.mangkyu.employment.interview.app.quiz.dto;
import com.mangkyu.employment.interview.enums.value.QuizCategory;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.mangkyu.employment.interview.enums.common.EnumMapperValue;
import lombok.Builder;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
@@ -14,7 +15,10 @@ public class GetQuizResponse {
private final long id;
private final String title;
private final QuizCategory quizCategory;
@JsonInclude(JsonInclude.Include.NON_NULL)
private final EnumMapperValue category;
private final List<String> quizLevelList;
private final long createdAt;

View File

@@ -42,7 +42,7 @@ public class QuizService {
public GetQuizResponse getQuiz(final long id) {
// TODO(MinKyu): Add Exception Handling
final Quiz quiz = quizRepository.findById(id).get();
return QuizDtoConverter.convert(quiz);
return QuizDtoConverter.convert(quiz, enumMapperFactory.getElement(EnumMapperKey.QUIZ_CATEGORY, quiz.getQuizCategory()));
}
public GetQuizResponseHolder getQuizList(final GetQuizRequest getQuizRequest) {

View File

@@ -5,6 +5,8 @@ import com.mangkyu.employment.interview.app.quiz.constants.QuizConstants;
import com.mangkyu.employment.interview.app.quiz.dto.*;
import com.mangkyu.employment.interview.app.quiz.entity.Quiz;
import com.mangkyu.employment.interview.app.quiz.service.QuizService;
import com.mangkyu.employment.interview.enums.common.EnumMapperType;
import com.mangkyu.employment.interview.enums.common.EnumMapperValue;
import com.mangkyu.employment.interview.enums.value.QuizCategory;
import com.mangkyu.employment.interview.enums.value.QuizLevel;
import org.junit.jupiter.api.BeforeEach;
@@ -58,7 +60,7 @@ class QuizControllerTest {
final GetQuizResponse quizResponse = GetQuizResponse.builder()
.title("quiz")
.quizLevelList(Arrays.asList(QuizLevel.JUNIOR.name(), QuizLevel.SENIOR.name()))
.quizCategory(QuizCategory.JAVA)
.category(enumMapperValue(QuizCategory.JAVA))
.build();
doReturn(quizResponse).when(quizService).getQuiz(id);
@@ -74,8 +76,7 @@ class QuizControllerTest {
assertThat(getQuizResult.getId()).isEqualTo(quizResponse.getId());
assertThat(getQuizResult.getTitle()).isEqualTo(quizResponse.getTitle());
assertThat(getQuizResult.getQuizCategory()).isEqualTo(quizResponse.getQuizCategory());
assertThat(getQuizResult.getQuizCategory()).isEqualTo(quizResponse.getQuizCategory());
assertThat(getQuizResult.getCategory().getCode()).isEqualTo(quizResponse.getCategory().getCode());
assertThat(getQuizResult.getCreatedAt()).isEqualTo(quizResponse.getCreatedAt());
}
@@ -91,7 +92,7 @@ class QuizControllerTest {
final GetQuizResponse quizResponse = GetQuizResponse.builder()
.title("quiz")
.quizLevelList(Arrays.asList(QuizLevel.JUNIOR.name(), QuizLevel.SENIOR.name()))
.quizCategory(QuizCategory.JAVA)
.category(enumMapperValue(QuizCategory.JAVA))
.build();
final GetQuizResponseHolder getQuizResponseHolder = GetQuizResponseHolder.builder()
.quizList(Collections.singletonList(quizResponse))
@@ -119,7 +120,7 @@ class QuizControllerTest {
final GetQuizResponse quizResponse = GetQuizResponse.builder()
.title("quiz")
.quizLevelList(Arrays.asList(QuizLevel.JUNIOR.name(), QuizLevel.SENIOR.name()))
.quizCategory(QuizCategory.JAVA)
.category(enumMapperValue(QuizCategory.JAVA))
.build();
final Pageable pageable = PageRequest.of(page, size);
@@ -170,7 +171,7 @@ class QuizControllerTest {
}
@Test
public void getQuizCategory() throws Exception {
public void getCategory() throws Exception {
// given
final String url = "/quiz/categories";
final long count = 15L;
@@ -206,4 +207,12 @@ class QuizControllerTest {
);
}
private EnumMapperValue enumMapperValue(final EnumMapperType enumMapperType) {
return EnumMapperValue.builder()
.code(enumMapperType.name())
.title(enumMapperType.getTitle())
.desc(enumMapperType.getDesc())
.build();
}
}

View File

@@ -2,6 +2,8 @@ package com.mangkyu.employment.interview.app.quiz.converter;
import com.mangkyu.employment.interview.app.quiz.dto.GetQuizResponse;
import com.mangkyu.employment.interview.app.quiz.entity.Quiz;
import com.mangkyu.employment.interview.enums.common.EnumMapperType;
import com.mangkyu.employment.interview.enums.common.EnumMapperValue;
import com.mangkyu.employment.interview.enums.value.QuizCategory;
import com.mangkyu.employment.interview.enums.value.QuizLevel;
import org.junit.jupiter.api.Test;
@@ -15,6 +17,23 @@ import static org.assertj.core.api.Assertions.assertThat;
class QuizDtoConverterTest {
@Test
public void convertQuizToGetQuizResponseWithCategory() {
// given
final long id = -1L;
final Quiz quiz = quiz(id);
// when
final GetQuizResponse result = QuizDtoConverter.convert(quiz, enumMapperValue(quiz.getQuizCategory()));
// then
assertThat(result.getId()).isEqualTo(id);
assertThat(result.getTitle()).isEqualTo(quiz.getTitle());
assertThat(result.getQuizLevelList().size()).isEqualTo(quiz.getQuizLevel().size());
assertThat(result.getCreatedAt()).isEqualTo(Timestamp.valueOf(quiz.getCreatedAt()).getTime());
assertThat(result.getCategory().getCode()).isEqualTo(enumMapperValue(quiz.getQuizCategory()).getCode());
}
@Test
public void convertQuizToGetQuizResponse() {
// given
@@ -27,9 +46,9 @@ class QuizDtoConverterTest {
// then
assertThat(result.getId()).isEqualTo(id);
assertThat(result.getTitle()).isEqualTo(quiz.getTitle());
assertThat(result.getQuizCategory()).isEqualTo(quiz.getQuizCategory());
assertThat(result.getQuizLevelList().size()).isEqualTo(quiz.getQuizLevel().size());
assertThat(result.getCreatedAt()).isEqualTo(Timestamp.valueOf(quiz.getCreatedAt()).getTime());
assertThat(result.getCategory()).isNull();
}
private Quiz quiz(final long id) {
@@ -45,4 +64,11 @@ class QuizDtoConverterTest {
return quiz;
}
private EnumMapperValue enumMapperValue(final EnumMapperType enumMapperType) {
return EnumMapperValue.builder()
.code(enumMapperType.name())
.title(enumMapperType.getTitle())
.desc(enumMapperType.getDesc())
.build();
}
}

View File

@@ -74,7 +74,7 @@ class QuizServiceTest {
// then
assertThat(result.getId()).isEqualTo(id);
assertThat(result.getTitle()).isEqualTo(quiz.getTitle());
assertThat(result.getQuizCategory()).isEqualTo(quiz.getQuizCategory());
assertThat(result.getCategory()).isEqualTo(enumMapperFactory.getElement(EnumMapperKey.QUIZ_CATEGORY, quiz.getQuizCategory()));
assertThat(result.getQuizLevelList().size()).isEqualTo(quiz.getQuizLevel().size());
assertThat(result.getCreatedAt()).isEqualTo(Timestamp.valueOf(quiz.getCreatedAt()).getTime());
}