Merge branch 'master' into master-web
This commit is contained in:
@@ -1,8 +1,9 @@
|
||||
package com.mangkyu.employment.interview.app.answer.constants;
|
||||
|
||||
import lombok.AccessLevel;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@NoArgsConstructor
|
||||
@NoArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
public final class AnswerConstants {
|
||||
|
||||
public static final int MAX_ANSWER_SIZE = 5000;
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
package com.mangkyu.employment.interview.app.file.constants;
|
||||
|
||||
import lombok.AccessLevel;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@NoArgsConstructor
|
||||
@NoArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
public final class FileConstants {
|
||||
|
||||
public static final String FILE_API_PREFIX = "/api/file";
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
package com.mangkyu.employment.interview.app.quiz.constants;
|
||||
|
||||
import lombok.AccessLevel;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@NoArgsConstructor
|
||||
@NoArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
public final class QuizConstants {
|
||||
|
||||
public static final int DEFAULT_QUIZ_SIZE = 3;
|
||||
|
||||
@@ -7,6 +7,7 @@ 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.AccessLevel;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
@@ -14,7 +15,7 @@ import java.sql.Timestamp;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@NoArgsConstructor
|
||||
@NoArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
public final class QuizDtoConverter {
|
||||
|
||||
public static GetAnswerResponse convert(final Answer answer) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
package com.mangkyu.employment.interview.utils;
|
||||
|
||||
import lombok.AccessLevel;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
|
||||
@NoArgsConstructor
|
||||
@NoArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
public final class DateUtils {
|
||||
|
||||
public static String getCurrentDate() {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.mangkyu.employment.interview.utils;
|
||||
|
||||
import lombok.AccessLevel;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.springframework.util.FileCopyUtils;
|
||||
import org.springframework.util.ResourceUtils;
|
||||
@@ -10,7 +11,7 @@ import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
||||
@NoArgsConstructor
|
||||
@NoArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
public final class FileUtils {
|
||||
|
||||
public static String readFileText(final String filePath) throws IOException {
|
||||
|
||||
@@ -4,20 +4,17 @@ import com.google.gson.Gson;
|
||||
import com.mangkyu.employment.interview.app.answer.dto.AddAnswerRequest;
|
||||
import com.mangkyu.employment.interview.app.answer.dto.GetAnswerResponse;
|
||||
import com.mangkyu.employment.interview.app.answer.service.AnswerService;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.Arguments;
|
||||
import org.junit.jupiter.params.provider.MethodSource;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
|
||||
import org.springframework.boot.test.mock.mockito.MockBean;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.test.web.servlet.MockMvc;
|
||||
import org.springframework.test.web.servlet.ResultActions;
|
||||
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
|
||||
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
|
||||
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.UUID;
|
||||
@@ -27,21 +24,14 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
||||
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
@WebMvcTest(AnswerController.class)
|
||||
class AnswerControllerTest {
|
||||
|
||||
@InjectMocks
|
||||
private AnswerController target;
|
||||
|
||||
@Mock
|
||||
private AnswerService answerService;
|
||||
|
||||
@Autowired
|
||||
private MockMvc mockMvc;
|
||||
|
||||
@BeforeEach
|
||||
public void init() {
|
||||
mockMvc = MockMvcBuilders.standaloneSetup(target).build();
|
||||
}
|
||||
@MockBean
|
||||
private AnswerService answerService;
|
||||
|
||||
@Test
|
||||
public void getAnswer() throws Exception {
|
||||
|
||||
@@ -6,38 +6,30 @@ import com.mangkyu.employment.interview.enums.factory.EnumMapperFactory;
|
||||
import com.mangkyu.employment.interview.enums.value.QuizCategory;
|
||||
import com.mangkyu.employment.interview.enums.value.QuizDay;
|
||||
import com.mangkyu.employment.interview.enums.value.QuizLevel;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Spy;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
|
||||
import org.springframework.boot.test.mock.mockito.SpyBean;
|
||||
import org.springframework.context.annotation.Import;
|
||||
import org.springframework.test.web.servlet.MockMvc;
|
||||
import org.springframework.test.web.servlet.ResultActions;
|
||||
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
|
||||
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
||||
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
@WebMvcTest(EnumsController.class)
|
||||
@Import(EnumMapperConfig.class)
|
||||
class EnumsControllerTest {
|
||||
|
||||
@InjectMocks
|
||||
private EnumsController target;
|
||||
|
||||
@Spy
|
||||
private EnumMapperFactory enumMapperFactory = new EnumMapperConfig().enumMapperFactory();
|
||||
@SpyBean
|
||||
private EnumMapperFactory enumMapperFactory;
|
||||
|
||||
@Autowired
|
||||
private MockMvc mockMvc;
|
||||
|
||||
@BeforeEach
|
||||
public void init() {
|
||||
mockMvc = MockMvcBuilders.standaloneSetup(target).build();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getEnumsQuizCategoryList() throws Exception {
|
||||
// given
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.mangkyu.employment.interview.app.file.controller;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.mangkyu.employment.interview.app.enums.controller.EnumsController;
|
||||
import com.mangkyu.employment.interview.app.file.dto.FileUploadResponse;
|
||||
import com.mangkyu.employment.interview.app.file.service.FileService;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
@@ -9,6 +10,9 @@ import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
|
||||
import org.springframework.boot.test.mock.mockito.MockBean;
|
||||
import org.springframework.core.io.ByteArrayResource;
|
||||
import org.springframework.core.io.Resource;
|
||||
import org.springframework.mock.web.MockMultipartFile;
|
||||
@@ -25,21 +29,14 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
||||
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
@WebMvcTest(FileController.class)
|
||||
class FileControllerTest {
|
||||
|
||||
@InjectMocks
|
||||
private FileController target;
|
||||
|
||||
@Mock
|
||||
private FileService fileService;
|
||||
|
||||
@Autowired
|
||||
private MockMvc mockMvc;
|
||||
|
||||
@BeforeEach
|
||||
public void init() {
|
||||
mockMvc = MockMvcBuilders.standaloneSetup(target).build();
|
||||
}
|
||||
@MockBean
|
||||
private FileService fileService;
|
||||
|
||||
@Test
|
||||
public void uploadFileSuccess() throws Exception {
|
||||
|
||||
@@ -9,15 +9,13 @@ 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;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.Arguments;
|
||||
import org.junit.jupiter.params.provider.MethodSource;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
|
||||
import org.springframework.boot.test.mock.mockito.MockBean;
|
||||
import org.springframework.data.domain.PageImpl;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
@@ -25,7 +23,6 @@ import org.springframework.http.MediaType;
|
||||
import org.springframework.test.web.servlet.MockMvc;
|
||||
import org.springframework.test.web.servlet.ResultActions;
|
||||
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
|
||||
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
@@ -37,21 +34,14 @@ import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
||||
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
@WebMvcTest(QuizController.class)
|
||||
class QuizControllerTest {
|
||||
|
||||
@InjectMocks
|
||||
private QuizController target;
|
||||
|
||||
@Mock
|
||||
private QuizService quizService;
|
||||
|
||||
@Autowired
|
||||
private MockMvc mockMvc;
|
||||
|
||||
@BeforeEach
|
||||
public void init() {
|
||||
mockMvc = MockMvcBuilders.standaloneSetup(target).build();
|
||||
}
|
||||
@MockBean
|
||||
private QuizService quizService;
|
||||
|
||||
@Test
|
||||
public void getQuiz() throws Exception {
|
||||
|
||||
@@ -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<Arguments> validQuizParameters() {
|
||||
|
||||
@@ -6,39 +6,29 @@ import com.mangkyu.employment.interview.app.user.service.UserService;
|
||||
import com.mangkyu.employment.interview.enums.value.QuizCategory;
|
||||
import com.mangkyu.employment.interview.enums.value.QuizDay;
|
||||
import com.mangkyu.employment.interview.enums.value.QuizLevel;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
|
||||
import org.springframework.boot.test.mock.mockito.MockBean;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.test.web.servlet.MockMvc;
|
||||
import org.springframework.test.web.servlet.ResultActions;
|
||||
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
|
||||
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
||||
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
@WebMvcTest(UserController.class)
|
||||
class UserControllerTest {
|
||||
|
||||
@InjectMocks
|
||||
private UserController target;
|
||||
|
||||
@Mock
|
||||
@MockBean
|
||||
private UserService userService;
|
||||
|
||||
@Autowired
|
||||
private MockMvc mockMvc;
|
||||
|
||||
@BeforeEach
|
||||
public void init() {
|
||||
mockMvc = MockMvcBuilders.standaloneSetup(target).build();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void addUserFail_EmailIsEmpty() throws Exception {
|
||||
// given
|
||||
|
||||
Reference in New Issue
Block a user