Merge branch 'master' into master-web
This commit is contained in:
@@ -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.dto.GetQuizResponse;
|
||||||
import com.mangkyu.employment.interview.app.quiz.entity.Quiz;
|
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 com.mangkyu.employment.interview.enums.value.QuizLevel;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
@@ -16,7 +17,15 @@ public final class QuizDtoConverter {
|
|||||||
return GetQuizResponse.builder()
|
return GetQuizResponse.builder()
|
||||||
.id(quiz.getId())
|
.id(quiz.getId())
|
||||||
.title(quiz.getTitle())
|
.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()))
|
.quizLevelList(convert(quiz.getQuizLevel()))
|
||||||
.createdAt(Timestamp.valueOf(quiz.getCreatedAt()).getTime())
|
.createdAt(Timestamp.valueOf(quiz.getCreatedAt()).getTime())
|
||||||
.build();
|
.build();
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.mangkyu.employment.interview.app.quiz.dto;
|
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.Builder;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
@@ -14,7 +15,10 @@ public class GetQuizResponse {
|
|||||||
|
|
||||||
private final long id;
|
private final long id;
|
||||||
private final String title;
|
private final String title;
|
||||||
private final QuizCategory quizCategory;
|
|
||||||
|
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||||
|
private final EnumMapperValue category;
|
||||||
|
|
||||||
private final List<String> quizLevelList;
|
private final List<String> quizLevelList;
|
||||||
private final long createdAt;
|
private final long createdAt;
|
||||||
|
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ public class QuizService {
|
|||||||
public GetQuizResponse getQuiz(final long id) {
|
public GetQuizResponse getQuiz(final long id) {
|
||||||
// TODO(MinKyu): Add Exception Handling
|
// TODO(MinKyu): Add Exception Handling
|
||||||
final Quiz quiz = quizRepository.findById(id).get();
|
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) {
|
public GetQuizResponseHolder getQuizList(final GetQuizRequest getQuizRequest) {
|
||||||
|
|||||||
@@ -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.dto.*;
|
||||||
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.QuizService;
|
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.QuizCategory;
|
||||||
import com.mangkyu.employment.interview.enums.value.QuizLevel;
|
import com.mangkyu.employment.interview.enums.value.QuizLevel;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
@@ -58,7 +60,7 @@ class QuizControllerTest {
|
|||||||
final GetQuizResponse quizResponse = GetQuizResponse.builder()
|
final GetQuizResponse quizResponse = GetQuizResponse.builder()
|
||||||
.title("quiz")
|
.title("quiz")
|
||||||
.quizLevelList(Arrays.asList(QuizLevel.JUNIOR.name(), QuizLevel.SENIOR.name()))
|
.quizLevelList(Arrays.asList(QuizLevel.JUNIOR.name(), QuizLevel.SENIOR.name()))
|
||||||
.quizCategory(QuizCategory.JAVA)
|
.category(enumMapperValue(QuizCategory.JAVA))
|
||||||
.build();
|
.build();
|
||||||
doReturn(quizResponse).when(quizService).getQuiz(id);
|
doReturn(quizResponse).when(quizService).getQuiz(id);
|
||||||
|
|
||||||
@@ -74,8 +76,7 @@ class QuizControllerTest {
|
|||||||
|
|
||||||
assertThat(getQuizResult.getId()).isEqualTo(quizResponse.getId());
|
assertThat(getQuizResult.getId()).isEqualTo(quizResponse.getId());
|
||||||
assertThat(getQuizResult.getTitle()).isEqualTo(quizResponse.getTitle());
|
assertThat(getQuizResult.getTitle()).isEqualTo(quizResponse.getTitle());
|
||||||
assertThat(getQuizResult.getQuizCategory()).isEqualTo(quizResponse.getQuizCategory());
|
assertThat(getQuizResult.getCategory().getCode()).isEqualTo(quizResponse.getCategory().getCode());
|
||||||
assertThat(getQuizResult.getQuizCategory()).isEqualTo(quizResponse.getQuizCategory());
|
|
||||||
assertThat(getQuizResult.getCreatedAt()).isEqualTo(quizResponse.getCreatedAt());
|
assertThat(getQuizResult.getCreatedAt()).isEqualTo(quizResponse.getCreatedAt());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -91,7 +92,7 @@ class QuizControllerTest {
|
|||||||
final GetQuizResponse quizResponse = GetQuizResponse.builder()
|
final GetQuizResponse quizResponse = GetQuizResponse.builder()
|
||||||
.title("quiz")
|
.title("quiz")
|
||||||
.quizLevelList(Arrays.asList(QuizLevel.JUNIOR.name(), QuizLevel.SENIOR.name()))
|
.quizLevelList(Arrays.asList(QuizLevel.JUNIOR.name(), QuizLevel.SENIOR.name()))
|
||||||
.quizCategory(QuizCategory.JAVA)
|
.category(enumMapperValue(QuizCategory.JAVA))
|
||||||
.build();
|
.build();
|
||||||
final GetQuizResponseHolder getQuizResponseHolder = GetQuizResponseHolder.builder()
|
final GetQuizResponseHolder getQuizResponseHolder = GetQuizResponseHolder.builder()
|
||||||
.quizList(Collections.singletonList(quizResponse))
|
.quizList(Collections.singletonList(quizResponse))
|
||||||
@@ -119,7 +120,7 @@ class QuizControllerTest {
|
|||||||
final GetQuizResponse quizResponse = GetQuizResponse.builder()
|
final GetQuizResponse quizResponse = GetQuizResponse.builder()
|
||||||
.title("quiz")
|
.title("quiz")
|
||||||
.quizLevelList(Arrays.asList(QuizLevel.JUNIOR.name(), QuizLevel.SENIOR.name()))
|
.quizLevelList(Arrays.asList(QuizLevel.JUNIOR.name(), QuizLevel.SENIOR.name()))
|
||||||
.quizCategory(QuizCategory.JAVA)
|
.category(enumMapperValue(QuizCategory.JAVA))
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
final Pageable pageable = PageRequest.of(page, size);
|
final Pageable pageable = PageRequest.of(page, size);
|
||||||
@@ -170,7 +171,7 @@ class QuizControllerTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getQuizCategory() throws Exception {
|
public void getCategory() throws Exception {
|
||||||
// given
|
// given
|
||||||
final String url = "/quiz/categories";
|
final String url = "/quiz/categories";
|
||||||
final long count = 15L;
|
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();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -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.dto.GetQuizResponse;
|
||||||
import com.mangkyu.employment.interview.app.quiz.entity.Quiz;
|
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.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;
|
||||||
@@ -15,6 +17,23 @@ import static org.assertj.core.api.Assertions.assertThat;
|
|||||||
|
|
||||||
class QuizDtoConverterTest {
|
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
|
@Test
|
||||||
public void convertQuizToGetQuizResponse() {
|
public void convertQuizToGetQuizResponse() {
|
||||||
// given
|
// given
|
||||||
@@ -27,9 +46,9 @@ class QuizDtoConverterTest {
|
|||||||
// then
|
// then
|
||||||
assertThat(result.getId()).isEqualTo(id);
|
assertThat(result.getId()).isEqualTo(id);
|
||||||
assertThat(result.getTitle()).isEqualTo(quiz.getTitle());
|
assertThat(result.getTitle()).isEqualTo(quiz.getTitle());
|
||||||
assertThat(result.getQuizCategory()).isEqualTo(quiz.getQuizCategory());
|
|
||||||
assertThat(result.getQuizLevelList().size()).isEqualTo(quiz.getQuizLevel().size());
|
assertThat(result.getQuizLevelList().size()).isEqualTo(quiz.getQuizLevel().size());
|
||||||
assertThat(result.getCreatedAt()).isEqualTo(Timestamp.valueOf(quiz.getCreatedAt()).getTime());
|
assertThat(result.getCreatedAt()).isEqualTo(Timestamp.valueOf(quiz.getCreatedAt()).getTime());
|
||||||
|
assertThat(result.getCategory()).isNull();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Quiz quiz(final long id) {
|
private Quiz quiz(final long id) {
|
||||||
@@ -45,4 +64,11 @@ class QuizDtoConverterTest {
|
|||||||
return quiz;
|
return quiz;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private EnumMapperValue enumMapperValue(final EnumMapperType enumMapperType) {
|
||||||
|
return EnumMapperValue.builder()
|
||||||
|
.code(enumMapperType.name())
|
||||||
|
.title(enumMapperType.getTitle())
|
||||||
|
.desc(enumMapperType.getDesc())
|
||||||
|
.build();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -74,7 +74,7 @@ class QuizServiceTest {
|
|||||||
// then
|
// then
|
||||||
assertThat(result.getId()).isEqualTo(id);
|
assertThat(result.getId()).isEqualTo(id);
|
||||||
assertThat(result.getTitle()).isEqualTo(quiz.getTitle());
|
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.getQuizLevelList().size()).isEqualTo(quiz.getQuizLevel().size());
|
||||||
assertThat(result.getCreatedAt()).isEqualTo(Timestamp.valueOf(quiz.getCreatedAt()).getTime());
|
assertThat(result.getCreatedAt()).isEqualTo(Timestamp.valueOf(quiz.getCreatedAt()).getTime());
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user