Add QuizService with addQuiz Method
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
package com.mangkyu.employment.interview.app.quiz.dto;
|
||||
|
||||
import com.mangkyu.employment.interview.app.quiz.enums.QuizCategory;
|
||||
import com.mangkyu.employment.interview.app.quiz.enums.QuizLevel;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Getter
|
||||
@Builder
|
||||
@RequiredArgsConstructor
|
||||
public class AddQuizRequest {
|
||||
|
||||
private final String title;
|
||||
private final QuizCategory quizCategory;
|
||||
private final List<QuizLevel> quizLevel;
|
||||
|
||||
}
|
||||
@@ -3,10 +3,7 @@ package com.mangkyu.employment.interview.app.quiz.entity;
|
||||
import com.mangkyu.employment.interview.app.common.entity.CommonEntity;
|
||||
import com.mangkyu.employment.interview.app.quiz.enums.QuizCategory;
|
||||
import com.mangkyu.employment.interview.app.quiz.enums.QuizLevel;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.*;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.util.List;
|
||||
@@ -15,8 +12,9 @@ import java.util.List;
|
||||
@Table
|
||||
@Getter
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@NoArgsConstructor(force = true)
|
||||
@AllArgsConstructor
|
||||
@ToString
|
||||
public class QuizEntity extends CommonEntity {
|
||||
|
||||
private String title;
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.mangkyu.employment.interview.app.quiz.service;
|
||||
|
||||
import com.mangkyu.employment.interview.app.quiz.dto.AddQuizRequest;
|
||||
import com.mangkyu.employment.interview.app.quiz.entity.QuizEntity;
|
||||
import com.mangkyu.employment.interview.app.quiz.repository.QuizRepository;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.modelmapper.ModelMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class QuizService {
|
||||
|
||||
private final ModelMapper modelMapper;
|
||||
private final QuizRepository quizRepository;
|
||||
|
||||
public void addQuiz(final AddQuizRequest addQuizRequest) {
|
||||
final QuizEntity quizEntity = modelMapper.map(addQuizRequest, QuizEntity.class);
|
||||
System.out.println(quizEntity);
|
||||
quizRepository.save(quizEntity);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
package com.mangkyu.employment.interview.app.quiz.service;
|
||||
|
||||
import com.mangkyu.employment.interview.app.quiz.dto.AddQuizRequest;
|
||||
import com.mangkyu.employment.interview.app.quiz.entity.QuizEntity;
|
||||
import com.mangkyu.employment.interview.app.quiz.enums.QuizCategory;
|
||||
import com.mangkyu.employment.interview.app.quiz.enums.QuizLevel;
|
||||
import com.mangkyu.employment.interview.app.quiz.repository.QuizRepository;
|
||||
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.Spy;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
import org.modelmapper.ModelMapper;
|
||||
import org.modelmapper.config.Configuration;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
class QuizServiceTest {
|
||||
|
||||
@InjectMocks
|
||||
private QuizService quizService;
|
||||
|
||||
@Mock
|
||||
private QuizRepository quizRepository;
|
||||
@Spy
|
||||
private ModelMapper modelMapper;
|
||||
|
||||
@BeforeEach
|
||||
public void init() {
|
||||
modelMapper.getConfiguration()
|
||||
.setFieldAccessLevel(Configuration.AccessLevel.PRIVATE)
|
||||
.setFieldMatchingEnabled(true);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void addQuiz_Success() {
|
||||
// given
|
||||
final AddQuizRequest request = AddQuizRequest.builder()
|
||||
.title("quiz")
|
||||
.quizCategory(QuizCategory.JAVA)
|
||||
.quizLevel(Arrays.asList(QuizLevel.NEW, QuizLevel.JUNIOR, QuizLevel.SENIOR))
|
||||
.build();
|
||||
|
||||
// when
|
||||
quizService.addQuiz(request);
|
||||
|
||||
// then
|
||||
|
||||
// verify
|
||||
verify(quizRepository, times(1)).save(any(QuizEntity.class));
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user